2014-06-17 8 views
5

के लिए कोई घोषणा नहीं मिल सकती है, मैं सीएएस क्लाइंट को कॉन्फ़िगर करके प्रमाणीकरण के लिए सीएएस सर्वर के साथ एक स्प्रिंग सुरक्षा प्रोजेक्ट को एकीकृत करने की कोशिश कर रहा हूं। इसे अपने वेब ऐप पर लागू करने से पहले मैंने इसे स्प्रिंग सिक्योरिटी नमूना प्रोजेक्ट में करने की कोशिश की।मेलिंग वाइल्डकार्ड सख्त है, लेकिन तत्व 'बीन'

मैंने सीएएस प्लगइन्स को जोड़ा जैसा कि https://wiki.jasig.org/display/CASC/Configuring+the+JA-SIG+CAS+Client+for+Java+using+Spring इस मामले में अपनाने के संकेत में जोड़ा गया है।

जब मैं चलाने के लिए या मैं त्रुटि मैं शीर्षक पर उल्लेख किया जो लाइन

<bean id="springSecurityFilterChain" class="org.springframework.security.web.FilterChainProxy"> 
निम्नलिखित वसंत-security.xml की

में जाना जाता है प्राप्त नमूना वेब अनुप्रयोग डिबग:

<beans:beans xmlns="http://www.springframework.org/schema/security" 
xmlns:beans="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:context="http://www.springframework.org/schema/context" 
xsi:schemaLocation="http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 

http://www.springframework.org/schema/security 
http://www.springframework.org/schema/security/spring-security-3.2.xsd 
    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd"> 

<!-- enable use-expressions --> 
<http auto-config="true" use-expressions="true"> 
    <intercept-url pattern="/admin**" access="hasRole('ROLE_ADMIN')" /> 

    <!-- access denied page --> 
    <access-denied-handler error-page="/403" /> 
    <form-login 
     login-page="/login" 
     default-target-url="/welcome" 
     authentication-failure-url="/login?error" 
     username-parameter="username" 
     password-parameter="password" /> 
    <logout logout-success-url="/login?logout" /> 
    <!-- enable csrf protection --> 
    <csrf/> 
</http> 

<!-- Select users and user_roles from database --> 
<authentication-manager> 
    <authentication-provider> 
     <jdbc-user-service id="userService" data-source-ref="dataSource" 
      users-by-username-query= 
       "select username,password, enabled from users where username=?" 
      authorities-by-username-query= 
       "select username, role from user_roles where username =? " /> 
    </authentication-provider> 
</authentication-manager> 

    <bean id="springSecurityFilterChain" class="org.springframework.security.web.FilterChainProxy"> 
    <security:filter-chain-map path-type="ant"> 
     <security:filter-chain pattern="/" filters="casValidationFilter, wrappingFilter" /> 
     <security:filter-chain pattern="/secure/receptor" filters="casValidationFilter" /> 
     <security:filter-chain pattern="/j_spring_security_logout" filters="logoutFilter,etf,fsi" /> 
     <security:filter-chain pattern="/**" filters="casAuthenticationFilter, casValidationFilter, wrappingFilter, sif,j2eePreAuthFilter,logoutFilter,etf,fsi"/> 
    </security:filter-chain-map> 
</bean> 
<bean id="sif" class="org.springframework.security.web.context.SecurityContextPersistenceFilter"/> 
<bean id="preAuthAuthProvider" class="org.springframework.security.web.authentication.preauth.PreAuthenticatedAuthenticationProvider"> 
    <property name="preAuthenticatedUserDetailsService"> 
     <bean id="userDetailsServiceWrapper" class="org.springframework.security.core.userdetails.UserDetailsByNameServiceWrapper"> 
      <property name="userDetailsService" ref="userService"/> 
     </bean> 
    </property> 
</bean> 

<bean id="preAuthEntryPoint" class="org.springframework.security.web.authentication.Http403ForbiddenEntryPoint" /> 

<bean id="j2eePreAuthFilter" class="org.springframework.security.web.authentication.preauth.j2ee.J2eePreAuthenticatedProcessingFilter"> 
    <property name="authenticationManager" ref="authenticationManager"/> 
    <property name="authenticationDetailsSource"> 
     <bean class="org.springframework.security.web.authentication.WebAuthenticationDetailsSource" /> 
    </property> 
</bean> 

<bean id="logoutFilter" class="org.springframework.security.web.authentication.logout.LogoutFilter"> 
    <constructor-arg value="/"/> 
    <constructor-arg> 
     <list> 
      <bean class="org.springframework.security.web.authentication.logout.SecurityContextLogoutHandler"/> 
     </list> 
    </constructor-arg> 
</bean> 

<bean id="servletContext" class="org.springframework.web.context.support.ServletContextFactoryBean"/> 

<bean id="etf" class="org.springframework.security.web.access.ExceptionTranslationFilter"> 
    <property name="authenticationEntryPoint" ref="preAuthEntryPoint"/> 
</bean> 

<bean id="httpRequestAccessDecisionManager" class="org.springframework.security.access.vote.AffirmativeBased"> 
    <property name="allowIfAllAbstainDecisions" value="false"/> 
    <property name="decisionVoters"> 
     <list> 
      <ref bean="roleVoter"/> 
     </list> 
    </property> 
</bean> 
<bean id="fsi" class="org.springframework.security.web.access.intercept.FilterSecurityInterceptor"> 
    <property name="authenticationManager" ref="authenticationManager"/> 
    <property name="accessDecisionManager" ref="httpRequestAccessDecisionManager"/> 
    <property name="securityMetadataSource"> 
     <security:filter-invocation-definition-source> 
      <security:intercept-url pattern="/**" access="ROLE_ANONYMOUS,ROLE_USER"/> 
     </security:filter-invocation-definition-source> 
    </property> 
</bean> 
<bean id="roleVoter" class="org.springframework.security.access.vote.RoleVoter"/> 

<bean id="securityContextHolderAwareRequestFilter" class="org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter"/> 
<bean class="org.jasig.cas.client.validation.Saml11TicketValidator" id="ticketValidator"> 
    <constructor-arg index="0" value={cas.login} /> 

    <!--<property name="proxyGrantingTicketStorage" ref="proxyGrantingTicketStorage" />--> 
    <!--<property name="proxyCallbackUrl" value="http://localhost:8080/ui/" />--> 
</bean> 
<bean id="proxyGrantingTicketStorage" class="org.jasig.cas.client.proxy.ProxyGrantingTicketStorageImpl" /> 
<bean id="casAuthenticationFilter" class="org.jasig.cas.client.authentication.AuthenticationFilter"> 
    <property name="casServerLoginUrl" value={cas.login.url} /> 
    <property name="serverName" value={cas.login.url} /> 
</bean> 
<bean id="casValidationFilter" class="org.jasig.cas.client.validation.Saml11TicketValidationFilter"> 
    <property name="serverName" value="http://localhost:8080/ui" /> 
    <property name="exceptionOnValidationFailure" value="true" /> 
    <!--<property name="proxyGrantingTicketStorage" ref="proxyGrantingTicketStorage" />--> 
    <property name="redirectAfterValidation" value="true" /> 
    <property name="ticketValidator" ref="ticketValidator" /> 
    <!--<property name="proxyReceptorUrl" value="/secure/receptor" />--> 
</bean> 
<bean id="wrappingFilter" class="org.jasig.cas.client.util.HttpServletRequestWrapperFilter" /> 

</beans:beans> 

किसी भी मदद की सराहना की है।

+1

आप मूल रूप से सबकुछ कॉपी करते हैं और इसे काम करने की उम्मीद करते हैं। आपके पास 'रूट' उपसर्ग नहीं है जैसा आपने अपनी जड़ बनाई है। तो 'सुरक्षा:' उपसर्ग को हटाएं और 'बीन्स' के साथ अपने सभी बीन घोषणाओं को उपसर्ग करें। साथ ही आप अपनी कॉन्फ़िगरेशन को डुप्लिकेट करते हैं और पहले से पंजीकृत कई बीन्स को ओवरराइड करते हैं, मैं दृढ़ता से सुझाव देता हूं कि आप पहले समझने की कोशिश करें कि क्या आवश्यक है और पुराने (आउट-डेटेड?) नमूना को अपने वास्तविक कोड में संशोधित करें। –

+0

मैं दृढ़ता से सुझाव देता हूं कि [संदर्भ अनुभाग 6.3] (http://docs.spring.io/spring-security/site/docs/current/reference/htmlsingle/#cas-client) संदर्भ मार्गदर्शिका का दृढ़ता से सुझाव देगा। जो स्पष्ट रूप से स्पष्ट करता है कि क्लाउड सुरक्षा के साथ क्लाइंट को कॉन्फ़िगर कैसे करें। –

+0

सुझावों के लिए बहुत बहुत धन्यवाद। हालांकि, मैं इसे अभी तक काम करने में कामयाब नहीं रहा हूं। क्या बीन्स मैं overriden है? आप सुरक्षा उपसर्ग के बारे में सही हैं जिसमें मैंने xmlns शामिल नहीं किया था: सुरक्षा = "http://www.springframework.org/schema/security" – user2008973

उत्तर

7

आपको स्कीमा स्थान में एक्सएसडी भी जोड़ना होगा।

xsi:schemaLocation="http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.2.xsd" 
संबंधित मुद्दे

 संबंधित मुद्दे