2012-06-18 6 views
4

Как использовать Spring Security в автономном приложении. Мне просто нужно использовать часть проверки подлинности Spring Security. Мне нужно аутентифицировать пользователей в Windows Active Directory. В Интернете есть множество примеров использования весенней безопасности в Servlets, но они не могут найти многого для использования в автономных приложениях.Весенняя безопасность в автономном приложении

Ищу только на то, чтобы завершить этот метод

boolean isValidCredentials(String username, String password) 
{ 
    //TODO use spring security for authentication here.. 
} 

ответ

1

Вы можете использовать ActiveDirectoryLdapAuthenticationProvider из пружинной-безопасности-LDAP, если вам просто нужно сделать проверку подлинности.

Просто создайте компонент в контексте приложения, как:

<bean id="adAuthProvider" class="org.springframework.security.ldap.authentication.ad.ActiveDirectoryLdapAuthenticationProvider"> 
    <constructor-arg value="your.domain" /> 
    <constructor-arg value="ldap://your.ad.server" /> 
</bean> 

Затем использовать его как

try { 
    adAuthProvider.authenticate(new UsernamePasswordAuthenticationToken("user", "password")); 
} catch (AuthenticationException ae) { 
    // failed 
} 
+0

Большое спасибо за помощь [pap], это работает –

0

using-spring-security-in-a-swing-desktop-application

public Authentication authenticate(String username, String password) { 
UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken(username, password); 

Authentication auth = _authProvider.authenticate(token); 
if (null != auth) { 
    SecurityContextHolder.getContext().setAuthentication(auth); 

    _eventPublisher.publishEvent(new InteractiveAuthenticationSuccessEvent(auth, this.getClass())); 

    return auth; 
} 
throw new BadCredentialsException("null authentication"); 
} 

Я не пробовал выше код сам, но выглядит разумно. Ниже ссылки на javadoc для удобства SecurityContextHolder

Смежные вопросы