powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Создание Security Providers для Bea Weblogic 9.x
7 сообщений из 7, страница 1 из 1
Создание Security Providers для Bea Weblogic 9.x
    #34822629
Фотография Софтверный проктолог
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Господа, кто-нибудь занимался этим ?
Ай нид хэлп.
Я не могу понять, как сделать свой RoleMapper и Authenticator.
Казалось бы — есть подробная документация http://edocs.bea.com/wls/docs92/dvspisec/index.html .
Вот только после прочтения остается больше вопросов, чем получено на них ответов.
Главный из них — где взять работающий пример, для начала?
Я не могу понять, как должен на самом деле выглядеть мой ...MBean в xml. Какие интерфейсы в нем имплементить? Как реализовывать ...MBeanImpl?
Просто ППЦ.

Ведь задача элементарна — получить список ролей из СУБД и привязать к пользователю (до этого получить собственный список групп для пользователя, но там попроще — я попробовал CustomDBMSAuthenticatorPlugin и осталось только побороть его в плане шифрования — заставить понять, что возвращаемый пароль представляет собой MD5-хэш).
...
Рейтинг: 0 / 0
Создание Security Providers для Bea Weblogic 9.x
    #34822700
Фотография Софтверный проктолог
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Отлично. В CustomDBMSAuthenticatorPlugin всё завертелось после дописывания идентификатора алгоритма в виде
Код: plaintext
 return  "{MD5}" + password;
...
Рейтинг: 0 / 0
Создание Security Providers для Bea Weblogic 9.x
    #34822704
Фотография Софтверный проктолог
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вдобавок ко всему, DefaultAuthenticator необходимо сделать OPTIONAL и переместить его ниже (чтобы в заблуждение не вводил).

С Role Mapper'ом так и не понятно что делать :(
...
Рейтинг: 0 / 0
Создание Security Providers для Bea Weblogic 9.x
    #34825476
Фотография Софтверный проктолог
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Неужели никто не знает? Меня терзают сомнения — никто не пользуется Weblogic'ом или всем достаточно тех средств безопасности, который он предоставляет по-умолчанию (роли из LDAP с управлением через консоль).
...
Рейтинг: 0 / 0
Создание Security Providers для Bea Weblogic 9.x
    #34827459
Фотография Софтверный проктолог
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вчера пробовал сделать ход конем — стукнуть Weblogic'овскому LDAP'у в мозг новыми ролями и условиями применения. Пробовал настраивать через XACML документ. Это ужоснах. Меня пугает то, что делают из XML'я. Хотя изучил в процессе, што такое LDAP и как с ним работать...
...
Рейтинг: 0 / 0
Создание Security Providers для Bea Weblogic 9.x
    #34830962
Фотография Софтверный проктолог
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Оууу, еееее.
Я ево победюл! Всё сделал по-взрослому.

В целом подобное решение (на MDF и автогенерации) оказалось красивым и эффективным.
С презрением вспоминаю realm'ы в Tomcat :)
...
Рейтинг: 0 / 0
Создание Security Providers для Bea Weblogic 9.x
    #34831235
Фотография Софтверный проктолог
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По всей видимости, нужно оставить подробное описание для потомков (меня уже не раз выручал подобный подход других людей на всяких разных форумах).

Реализация провайдеров безопасности для BEA Weblogic 9.x
Определения:
PR_PATH — корневой путь к проекту (C:\PROJECTS\xxx)

SECUR_PATH — путь к пакету, в котором лежат классы безопасности (C:\PROJECTS\xxx\src\com\xxx\weblogic\wl9x)

SECUR_PACKAGE — наименование пакета (com.xxx.weblogic.wl9x)

BEA_PATH —путь к установленному BEA (C:\bea9Home)

CLASS_NAME — наименование класса, реализующего провайдер безопасности (MyRoleMapper)


1) Создаем XML-файл с описанием MDB бина.
CLASS_NAME .xml (должен быть размещен в SECUR_PATH, там же должен лежать файл commo.dtd, который можно найти в папке BEA_PATH\weblogic92\server\lib\)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
<?xml version="1.0" ?>
<!DOCTYPE MBeanType SYSTEM "commo.dtd">

<MBeanType
 Name          = " CLASS_NAME "
 DisplayName   = " CLASS_NAME "
 Package       = " SECUR_PACKAGE .authorization"
 Implements    = "weblogic.management.security.authorization.RoleMapper"
 PersistPolicy = "OnUpdate"
 Description   = "This MBean represents configuration attributes for the Forward Role Mapping
                  provider.
                  <p>
                  "
>

 <MBeanAttribute
  Name          = "ProviderClassName"
  Type          = "java.lang.String"
  Writeable     = "false"
  Preprocessor  = "weblogic.management.configuration.LegalHelper.checkClassName(value)"
  Default       = "& quot; SECUR_PACKAGE .authorization. CLASS_NAME ProviderImpl& quot;"
  Description   = "The name of the Java class used to load the Forward Role Mapping provider."
 />

 <MBeanAttribute
  Name          = "Description"
  Type          = "java.lang.String"
  Writeable     = "false"
  Default       = ""Forward Role Mapping Provider""
  Description   = "A short description of the Forward Role Mapping provider."
 />

 <MBeanAttribute
  Name          = "Version"
  Type          = "java.lang.String"
  Writeable     = "false"
  Default       = ""1.0""
  Description   = "The version number of the Forward Role Mapping provider."
 />


</MBeanType>

2) Создаем класс, представляющий собой провайдер безопасности.
CLASS_NAME ProviderImpl (находящйися в пакете SECUR_PACKAGE .authorization)

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
package  SECUR_PACKAGE .authorization;

import java.util.*;

import javax.security.auth.*;

import weblogic.management.security.*;
import weblogic.security.service.*;
import weblogic.security.spi.*;
import weblogic.security.spi.ApplicationInfo.*;

/**
...
 * <p>
 * <b>Role Mapper Provider.</b>
 *
 * <p>
 * Этот провайдер занимается маппингом ролей для пользователей (в дальнейшем возможен маппинг на
 * любые сущности).
 *
 * <p>
 * Файлы в этой библиотеки должны собираться с помощью bat-файла weblogic_build_security_providers.bat
 * (или с помощью таска "BuildSecurityProviders".
 *
 * <p>
 * Созданная библиотека будет называться securityProviders.jar.
 *
 * <p>
 * Библиотеку следует поместить в каталог <b>/usr/local/bea9home/weblogic92/server/lib/mbeantypes</b>
 *
 *
 * @author raidan
 * @version 1.0
 */
public class  CLASS_NAME ProviderImpl implements DeployableRoleProviderV2, RoleMapper,
        VersionableApplicationProvider

{
    private String description; // a description of this provider
    private static final Map NO_ROLES = Collections.unmodifiableMap(new HashMap(1)); // used when no roles are found

    public void initialize (ProviderMBean mbean, SecurityServices services)
    {
…
    }

    public String getDescription ()
    {
        return description;
    }

    public void shutdown ()
    {
…
    }

    public RoleMapper getRoleMapper ()

    {
        // Since this class implements both the DeployableRoleProvider
        // and RoleMapper interfaces, this object is the
        // role mapper object so just return "this".
        return this;
    }

    public Map getRoles (Subject subject, Resource resource, ContextHandler handler)
    {
…
// Метод getRoles возвращает Map ролей, заполняемых по принципу:
// map.put("НАИМЕНОВАНИЕ_РОЛИ", new RoleImplement(...));
// где RoleImplement — класс, имплеменирующий интерфейс weblogic.security.service.SecurityRole
        return NO_ROLES;
    }


    public DeployRoleHandle startDeployRoles (ApplicationInfo application)
    {
…
    }

    public void deployRole (DeployRoleHandle handle, Resource resource, String roleName,
                            String[] principalNames)
    {
…
    }

    public void endDeployRoles (DeployRoleHandle handle)
    {
…
    }

    public void undeployAllRoles (DeployRoleHandle handle)
    {
…
    }

    public void deleteApplicationRoles (ApplicationInfo application)
    {
…
    }


    public void createApplicationVersion (String appId, String sourceAppId)
    {
…
    }


    public void deleteApplicationVersion (String appId)
    {
…
    }

    public void deleteApplication (String appName)
    {
…
    }

}

3) Создаем интерфейсы и библиотеку. Для этого используется следующий набор команд:
В Set’ах, оканчивающиеся на _REV записывается путь с обратными слэшами (вместо C:\PROJECTS\xxx должно быть C:/PROJECTS/xxx)

Файл weblogic_build_security_providers.bat

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
@set BEA_PATH=C:\bea9Home

@set SECUR_PACKAGE=com.xxx.weblogic.wl9x

@set SECUR_PATH_REV=C:/PROJECTS/xxx/src/com/xxx/weblogic/wl9x
@set SECUR_PATH=C:\PROJECTS\xxx\src\com\xxx\weblogic\wl9x

@set PR_PATH_REV=C:/PROJECTS/xxx
@set PR_PATH=C:\PROJECTS\xxx

@set CLASS_NAME=MyRoleMapper

@echo Generating implementation classes...

@"%BEA_PATH%\jdk150_04\bin\java" -classpath "%BEA_PATH%\weblogic92\server\lib\weblogic.jar" -DMDF=%SECUR_PATH_REV%/%CLASS_NAME%.xml -Dfiles=%PR_PATH_REV%/src/ -DcreateStubs=true weblogic.management.commo.WebLogicMBeanMaker

@echo Preparing...

@move /Y %PR_PATH%\src\%CLASS_NAME%Impl.java %SECUR_PATH%\authorization\%CLASS_NAME%Impl.java

@call weblogic_clean_security_providers.bat

@echo Generating MJF for security providers...

@"%BEA_PATH%\jdk150_04\bin\java" -classpath "%BEA_PATH%\weblogic92\server\lib\weblogic.jar;%BEA_PATH%\jdk150_04\lib\tools.jar;%PR_PATH%\classes\;" -DMJF=securityProviders.jar -Dfiles=%SECUR_PATH_REV%/authorization -Dverbose weblogic.management.commo.WebLogicMBeanMaker

@call weblogic_clean_security_providers.bat

Файл weblogic_clean_security_providers.bat

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
@set SECUR_PATH=C:\PROJECTS\xxx\src\com\xxx\weblogic\wl9x

@echo Cleaning cache...

@rmdir /S /Q %SECUR_PATH%\authorization\com\

@rmdir /S /Q %SECUR_PATH%\authorization\META-INF\

@rmdir /S /Q %SECUR_PATH%\authorization\schemacom_bea_xml\

@rmdir /S /Q %SECUR_PATH%\authorization\weblogic\
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Создание Security Providers для Bea Weblogic 9.x
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]