waffle结合spring-security进行windows认证

阅读更多

waffle是实现Windows & Active Directory单点登录的一种方式,它能过做一切windows认证 的事情,包括  Negotiate ,NTLM和Kerberos。其实现步骤如下:

1.下载waffle所需的jar文件,下载地址http://dblock.github.com/waffle/;

2.新建一个web项目,将waffle认证和spring-security相关的jar文件添加到web项目中,waffle所需的jar包分别为:

commons-logging-1.1.1.jar、guava-r07.jar、jna.jar、platform.jar、waffle-jacob.jar、waffle-jna.jar;

3、修改web.xml文件的配置为:

springSecurityFilterChain

org.springframework.web.filter.DelegatingFilterProxy

springSecurityFilterChain

/*

contextConfigLocation

/WEB-INF/waffle-filter.xml 

org.springframework.web.context.ContextLoaderListener

4、在WEB-INF下建立waffle-filter.xml文件,文件内容如下:

   class="waffle.windows.auth.impl.WindowsAuthProviderImpl" />

                class="waffle.servlet.spi.NegotiateSecurityFilterProvider">

   class="waffle.servlet.spi.SecurityFilterProviderCollection">

 

 

 

   class="waffle.spring.NegotiateSecurityFilterEntryPoint">

注意:当访问的时候最好将访问地址写成项目部署所在机器的主机名。

当浏览器发送请求时,首先经过negotiateSecurityFilterEntryPoint处理,若未经认证或认证失败,则会弹出一个页面要求输入用户名和密码,点击确定按钮后,交由waffleNegotiateSecurityFilter处理,waffleNegotiateSecurityFilter调用相应的类和方法判断用户名和密码是否正确,如果正确,在允许访问,此时可通过request.getUserPrincipal()获取登录用户的相关信息。

 

 

 

你可能感兴趣的:(spring,spring-security,waffle,windows)