2012-08-15 38 views
6

मैंने अंततः विंडोज़ 2008 आर 2 के खिलाफ एक एडी डोमेन पर SPNEGO का उपयोग करने के लिए अपने जेबॉस एएस 7 सर्वर को कॉन्फ़िगर किया। मैं जावा 7 का उपयोग कर रहा हूं।जब एसपीएनईजीओ क्लाइंट के लिए उपयोग नहीं किया जा सकता है तो मैं बेसिक या फॉर्म प्रमाणीकरण में कैसे वापसी कर सकता हूं?

जब कोई उपयोगकर्ता डोमेन कंप्यूटर के अलावा कहीं से सर्वर यूआरएल एक्सेस करता है (कहें, मोबाइल फोन या व्यापक इंटरनेट से), तो उन्हें उपयोगकर्ता नाम और पासवर्ड के लिए संकेत मिलेगा त्रुटि:

Login failure: javax.security.auth.login.LoginException: Unsupported negotiation mechanism 'NTLM' 

जब उपयोगकर्ता डोमेन पर लॉग इन करते समय यूआरएल तक पहुंचता है तो यह ठीक है।

पहले:: org.jboss.security.negotiation.spnego.SPNEGOLoginModule

दूसरा:

SPNEGO सुरक्षा-डोमेन (standalone.xml) पर 2 लॉगिन मॉड्यूल के लिए कॉन्फ़िगर

<login-module code="org.jboss.security.auth.spi.UsersRolesLoginModule" flag="required"> 
    <module-option name="password-stacking" value="useFirstPass"/> 
    <module-option name="usersProperties" value="file:${jboss.server.config.dir}/spnego-users.properties"/> 
    <module-option name="rolesProperties" value="file:${jboss.server.config.dir}/spnego-roles.properties"/> 
    <module-option name="defaultUsersProperties" value="file:${jboss.server.config.dir}/spnego-users.properties"/> 
    <module-option name="defaultRolesProperties" value="file:${jboss.server.config.dir}/spnego-roles.properties"/> 
</login-module> 

सवाल यह है: मैं BASIC कैसे वापस आने कर सकते हैं या FORM जब SPNEGO गुंजाइश से बाहर है?

धन्यवाद

पूर्ण अपवाद इस प्रकार है:

00:40:23,751 ERROR [org.jboss.security.authentication.JBossCachedAuthenticationManager] (http--0.0.0.0-9090-8) Login failure: javax.security.auth.login.LoginException: Unsupported negotiation mechanism 'NTLM'. 
     at org.jboss.security.negotiation.spnego.SPNEGOLoginModule.spnegoLogin(SPNEGOLoginModule.java:230) [jboss-negotiation-spnego-2.2.0.SP1.jar:2.2.0.SP1] 
     at org.jboss.security.negotiation.spnego.SPNEGOLoginModule.innerLogin(SPNEGOLoginModule.java:194) [jboss-negotiation-spnego-2.2.0.SP1.jar:2.2.0.SP1] 
     at org.jboss.security.negotiation.spnego.SPNEGOLoginModule.login(SPNEGOLoginModule.java:137) [jboss-negotiation-spnego-2.2.0.SP1.jar:2.2.0.SP1] 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.7.0_05] 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [rt.jar:1.7.0_05] 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_05] 
     at java.lang.reflect.Method.invoke(Method.java:601) [rt.jar:1.7.0_05] 
     at javax.security.auth.login.LoginContext.invoke(LoginContext.java:784) [rt.jar:1.7.0_05] 
     at javax.security.auth.login.LoginContext.access$000(LoginContext.java:203) [rt.jar:1.7.0_05] 
     at javax.security.auth.login.LoginContext$4.run(LoginContext.java:698) [rt.jar:1.7.0_05] 
     at javax.security.auth.login.LoginContext$4.run(LoginContext.java:696) [rt.jar:1.7.0_05] 
     at java.security.AccessController.doPrivileged(Native Method) [rt.jar:1.7.0_05] 
     at javax.security.auth.login.LoginContext.invokePriv(LoginContext.java:695) [rt.jar:1.7.0_05] 
     at javax.security.auth.login.LoginContext.login(LoginContext.java:594) [rt.jar:1.7.0_05] 
     at org.jboss.security.authentication.JBossCachedAuthenticationManager.defaultLogin(JBossCachedAuthenticationManager.java:449) [picketbox-infinispan-4.0.7.Final.jar:4.0.7.Final] 
     at org.jboss.security.authentication.JBossCachedAuthenticationManager.proceedWithJaasLogin(JBossCachedAuthenticationManager.java:383) [picketbox-infinispan-4.0.7.Final.jar:4.0.7.Final] 
     at org.jboss.security.authentication.JBossCachedAuthenticationManager.authenticate(JBossCachedAuthenticationManager.java:371) [picketbox-infinispan-4.0.7.Final.jar:4.0.7.Final] 
     at org.jboss.security.authentication.JBossCachedAuthenticationManager.isValid(JBossCachedAuthenticationManager.java:160) [picketbox-infinispan-4.0.7.Final.jar:4.0.7.Final] 
     at org.jboss.as.web.security.JBossWebRealm.authenticate(JBossWebRealm.java:214) [jboss-as-web-7.1.1.Final.jar:7.1.1.Final] 
     at org.jboss.security.negotiation.NegotiationAuthenticator.authenticate(NegotiationAuthenticator.java:187) [jboss-negotiation-common-2.2.0.SP1.jar:2.2.0.SP1] 
     at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:455) [jbossweb-7.0.13.Final.jar:] 
     at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:153) [jboss-as-web-7.1.1.Final.jar:7.1.1.Final] 
     at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:155) [jbossweb-7.0.13.Final.jar:] 
     at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) [jbossweb-7.0.13.Final.jar:] 
     at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) [jbossweb-7.0.13.Final.jar:] 
     at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:368) [jbossweb-7.0.13.Final.jar:] 
     at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877) [jbossweb-7.0.13.Final.jar:] 
     at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:671) [jbossweb-7.0.13.Final.jar:] 
     at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:930) [jbossweb-7.0.13.Final.jar:] 
     at java.lang.Thread.run(Thread.java:722) [rt.jar:1.7.0_05] 

उत्तर

1

ईमानदारी से, मैं SPNEGO विस्तार के साथ वसंत सुरक्षा का उपयोग कर आप सुझाव है। कृपया कुछ ऐसा देखें: http://blog.springsource.org/2009/09/28/spring-security-kerberos/

उसके बाद, आपके पास अधिक प्रमाणीकरण प्रदाता हो सकते हैं।

प्रशस्ति पत्र से लिया: Multiple Authentication Providers in Spring Security

आप के रूप में कई प्रदाताओं के रूप में आप चाहते हैं निर्दिष्ट कर सकते हैं। उन्हें उसी क्रम में चेक किया जाएगा जिन्हें आपने उन्हें प्रमाणीकरण-प्रबंधक टैग के अंदर घोषित किया था। एक बार एक सफल प्रमाणीकरण किया जाता है, तो यह प्रदाताओं को मतदान करना बंद कर देगा। यदि कोई प्रदाता खातास्टैटस एक्सेप्शन फेंकता है तो यह मतदान भी तोड़ देगा।

इस तरह, आप विशिष्ट अनुप्रयोग सर्वर कॉन्फ़िगरेशन पर निर्भर नहीं होंगे।

0

आप बुनियादी पर वापस आने की वेब-INF/web.xml फ़ाइल को संशोधित करने की आवश्यकता होगी:

<context-param> 
    <description>BASIC Authentication FallBack</description> 
    <param-name>org.jboss.security.negotiation.NegotiationAuthenticator.BasicAuthFallBack</param-name> 
    <param-value>true</param-value> 
</context-param> 

विवरण के लिए यहां देखें:

https://issues.jboss.org/browse/SECURITY-793