如何在独立应用程序中使用Spring Security。我只需要使用Spring Security的Authentication部分。我需要针对Windows Active Directory对用户进行身份验证。 Web中有很多用于在Servlet中使用spring安全性的例子,但在独立应用程序中使用它们却找不到多少。
我只是在找一些东西来完成这个方法
boolean isValidCredentials(String username, String password)
{
//TODO use spring security for authentication here..
}
答案 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