Используйте JAAS для пароля LDAP с безопасностью Spring

У меня есть веб-приложение Java EE, которое использует аутентификацию LDAP. Я использую Spring security для подключения к моему LDAP с помощью следующего кода:


    
    







    



    
        
            
            
        
    
    
        
            
        
    
    
    

На самом деле, мой бобWebsphereCredentials использует закрытый класс WebSphereWSMappingCallbackHandlerFactory как в этом ответе:Как получить доступ к псевдониму аутентификации из EJB, развернутого в Websphere 6.1

Мы можем видеть это в официальной документации Websphere:http://pic.dhe.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=%2Fcom.ibm.websphere.express.doc%2Finfo%2Fexp%2Fae%2Frsec_pluginj2c.html

Но я нене хочу, потому что:

Я думаю, что мое приложение может получить доступ ко всем именам входа JAAS в моем экземпляре WebSphere (не уверен).Этот класс определен в клиентской библиотеке HUGE IBM com.ibm.ws.admin.client-7.0.0.jar (42 Mo) => Компиляция медленнее, нет в моем предприятии NexusЭто'не портативный, не стандартный

Для информации я определяюWebsphereCredentials конструктор как это:

Map map = new HashMap();

map.put(Constants.MAPPING_ALIAS, this.jndiAlias);
Subject subject;
try {
    CallbackHandler callbackHandler = WSMappingCallbackHandlerFactory.getInstance().getCallbackHandler(map, null);
    LoginContext lc = new LoginContext("DefaultPrincipalMapping", callbackHandler);
    lc.login();
    subject = lc.getSubject();
} catch (NotImplementedException e) {
    throw new EfritTechnicalException(EfritTechnicalExceptionEnum.LOGIN_CREDENTIAL_PROBLEM, e);
} catch (LoginException e) {
    throw new EfritTechnicalException(EfritTechnicalExceptionEnum.LOGIN_CREDENTIAL_PROBLEM, e);
}

PasswordCredential cred = (PasswordCredential) subject.getPrivateCredentials().toArray()[0];

this.user = cred.getUserName();
this.password = String.valueOf(cred.getPassword());

Есть ли способ использовать только безопасность Spring и удалить эту зависимость?

Я понятия не имею, как совместитьhttp://static.springsource.org/spring-security/site/docs/3.1.x/reference/jaas.html а такжеhttp://static.springsource.org/spring-security/site/docs/3.1.x/reference/ldap.html.

Может быть, я должен полностью изменить свой подход и использовать другой способ?>

Ответы на вопрос(1)

Ваш ответ на вопрос