4

如何在独立应用程序中使用 Spring Security。我只需要使用 Spring Security 的 Authentication 部分。我需要针对 Windows Active Directory 对用户进行身份验证。网络上有很多在 Servlet 中使用 Spring Security 的示例,但在独立应用程序中使用它们却找不到太多。

我只是在寻找一些东西来完成这个方法

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

2 回答 2

3

如果您只需要进行身份验证,则可以使用 spring-security-ldap 中的ActiveDirectoryLdapAuthenticationProvider 。

只需在您的应用程序上下文中创建一个 bean,例如:

<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
}
于 2012-06-18T14:36:23.720 回答
1

使用-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

于 2015-03-23T08:19:12.393 回答