2015-10-06 72 views
4

我在搜索很多关于此主题的内容,但找不到解决方案。Java SSO with Wildfly 8,Java 1.8.0_45和Active Directory

的要求简述:

  • SSO在Web应用程序Wildfly下8.2
  • 验证的Windows用户到Active Directory
  • 预置至登录表单,当SSO失败
  • 在运行域名配置Wild

环境:

  • Microsoft AD Windows Server 2012 R2(1。机)
  • 微软Server 2012的R2与Wildfly 8.2(2机)
  • 的2.Machine亚斯加入域

我试了一下,到目前为止,势必将AD和通过的ktpass的Wildfly服务器,kinit,...它的工作原理!

  1. 尝试以下操作: github.com/dstraub/spnego-wildfly 其实也不是工作,没有回退(基于表单),并与Java版本1.8.0_45 sourceforge.net/p/spnego/discussion/1003769一个问题/线程/ 700b6941 /#cb84。

  2. 尝试下一个: github.com/kwart/spnego-demo 也不工作,似乎Wildfly 8.2具有不同的行为。

  3. WAFFLE库: 无法在Wildfly下运行,对Tomcat有很好的支持,但不是更多。

有人对此配置有过使用经验,有一个解决方案吗?

+0

我终于和WAFFLE合作了。 –

+0

如何?请分享这些信息! – bebbo

回答

3

这里的解释是:

  1. 我已经创建了以下库web应用程序包括:

    • 番石榴18.0.jar
    • JNA-4.1.0.jar
    • jna-platform-4.1.0.jar
    • slf4j-api-1.7.12.jar
    • waffle-jna-1.7.4.jar
  2. 我已经在Web中声明了Web过滤器。XML:

<filter> 
    <filter-name>SecurityFilter</filter-name> 
    <filter-class>waffle.servlet.NegotiateSecurityFilter</filter-class> 
</filter> 
<filter-mapping> 
    <filter-name>SecurityFilter</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping> 
  • 那之后,可以将来自HttpServletRequest读取用户
  • public String getUserName() { 
        Enumeration<String> headerNames = servletRequest.getHeaderNames(); 
        while (headerNames.hasMoreElements()) { 
         String headerName = headerNames.nextElement(); 
         String headerValue = servletRequest.getHeader(headerName); 
         System.out.println("Header Name:" + headerName + " " + headerValue); 
        }  
        return servletRequest.getUserPrincipal().getName(); 
    } 
    
  • 配置您的单点登录浏览器:
  • https://github.com/dblock/waffle/blob/master/Docs/ConfiguringBrowsers.md

    0

    我会解释技术,阿肯谈NTLM ......,SPNEGO dstraub是一个面向SPNEGO的Kerberos,如果你读它是写不支持NTLM

    的来源,但如果你使用JSF和有PhaseListener你会直接在登录表单上重定向,然后才能过滤,使用AS JBOSS,你可以使用阀门在jbossweb中进行身份验证...但不能与wildfly

    因为你不能在web.xml中放置2 auth-form方法,你必须使用基于SPNEGO的新机制认证,如果你想Kerberos(如过滤链中的链),基于华夫饼如果你想要NTLM 因为在华夫饼干网站上它写的是蜻蜓的阀门工程,但它是一个错误,现在widlfy使用没有更多的tomcat阀门进入,此外widlfy 9我认为8也删除所有认证机制,只有FORM,BASIC, EXTERNAL和CERT-DIGEST存在,widlfy 10加kerberos认证

    现在NTLM偶数版本2已过时并且没有多年的安全性,所以使用kerberos验证更加安全(活动目录中只有少量配置)...