独立应用程序中的Spring安全性

时间:2012-06-18 04:00:13

标签: spring security

如何在独立应用程序中使用Spring Security。我只需要使用Spring Security的Authentication部分。我需要针对Windows Active Directory对用户进行身份验证。 Web中有很多用于在Servlet中使用spring安全性的例子,但在独立应用程序中使用它们却找不到多少。

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

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

2 个答案:

答案 0 :(得分:1)

如果您只需要进行身份验证,可以使用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
}

答案 1 :(得分:1)

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