2016-06-24 1 views
1

security.xml Je reçois les erreurs suivantes:Quel est le problème avec mon fichier de configuration Spring XML Beans?

<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:context="http://www.springframework.org/schema/context" 
    xmlns:mvc="http://www.springframework.org/schema/mvc" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:oauth="http://www.springframework.org/schema/security/oauth2" 
    xmlns:sec="http://www.springframework.org/schema/security" 
    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-4.1.xsd 
      http://www.springframework.org/schema/security/oauth2 
      http://www.springframework.org/schema/security/spring-security-oauth2-2.0.xsd 
      http://www.springframework.org/schema/context 
      http://www.springframework.org/schema/context/spring-context-4.0.xsd 
      http://www.springframework.org/schema/mvc 
      http://www.springframework.org/schema/mvc/spring-mvc-4.2.xsd"> 

    <!-- Definition of authentication service --> 
    <http pattern="/oauth/token" create-session="stateless" authentication-manager-ref="clientAuthenticationManager" 
      xmlns="http://www.springframework.org/schema/security"> 
      <intercept-url pattern="/oauth/token" access="IS_AUTHENTICATED_FULLY"/> 
      <anonymous enabled="false"/> 
      <http-basic entry-point-ref="clientAuthenticationEntryPoint"/> 
      <!-- Include this only if you need to authenticate clients via request parameters--> 
      <custom-filter ref="clientCredentialsTokenEndpointFilter" after="BASIX_AUTH_FILTER"/> 
      <access-denied-handler ref="oauthAccessDeniedHandler"/>  
    </http> 

    <!-- Protected resources--> 
    <http pattern="/country/**" 
      create-session="never" 
      entry-point-ref="oauthAuthenticationEntryPoint" 
      access-decision-manager-ref="accessDecisionManager" 
      xmlns="http://www.springframework.org/schema/security"> 
     <anonymous enabled="false"/> 
     <intercept-url pattern="/country/**" access="ROLE_USER"/> 
     <custom-filter ref="resourceServerFilter" 
         before="PRE_AUTH_FILTER"/> 
     <access-denied-handler 
        ref="oauthAccessDeniedHandler"/> 
    </http> 

    <bean id="oauthAuthenticationEntryPoint" 
      class="org.springframework.security.oauth2.provider.error.OAuth2AuthenticationEntryPoint"> 
      <property name="realmName" value="dstest"/> 
    </bean> 

    <bean id="clienthAuthenticationEntryPoint" 
      class="org.springframework.security.oauth2.provider.error.OAuth2AuthenticationEntryPoint"> 
      <property name="realmName" value="dstest/client"/> 
      <property name="typeName" value="Basic"/> 
    </bean> 

    <bean id="oauthAccessDeniedHandler" 
      class="org.springframework.security.oauth2.provider.error.OAuth2AccessDeniedHandler"> 
    </bean> 

    <bean id="clientCredentialsTokenEndpointFilter" 
      class="org.springframework.security.oauth2.provider.client.ClientCredentialsTokenEndpointFilter"> 
      <property name="authenticationManager" ref="clientAuthenticationManager"/> 
    </bean> 

    <bean id="accessDecisionManager" class="org.springframework.security.access.vote.UnanimousBased" 
      xmlns="http://www.springframework.org/schema/beans"> 
     <constructor-arg> 
      <list> 
      <bean class="org.springframework.security.oauth2.provider.vote.ScopeVoter"/> 
      <bean class="org.springframework.security.access.vote.RoleVoter"/> 
      <bean class="org.springframework.security.access.vote.AuthenticatedVoter"/> 
      </list> 
     </constructor-arg> 
    </bean> 

    <!-- Authentication in config file --> 
    <authentication-manager id="clientAuthenticationManager" 
          xmlns="http://www.springframework.org/schema/security"> 
      <authentication-provider user-service-ref="clientDetailsUserService"/>      
    </authentication-manager> 

    <authentication-manager alias="authenticationManager" xmlns="http://www.springframework.org/schema/security"> 
     <authentication-provider> 
      <user-service id="userDetailsService"> 
       <user name="admin" password="password" authorities="ROLE_USER"/> 
      </user-service> 
     </authentication-provider> 
    </authentication-manager> 

    <bean id="clientDetailsUserService" 
      class="org.springframework.security.oauth2.provider.client.ClientDetailsUserDetailsService"> 
      <constructor-arg ref="clientDetails"/> 
    </bean>   

    <!-- Token Store --> 
    <bean id="tokenStore" class="org.springframework.security.oauth2.provider.token.InMemoryTokenStore"/> 

    <bean id="tokenServices" class="org.springframework.security.oauth2.provider.token.DefaultTokenServices"> 
      <property name="tokenStore" ref="tokenStore"/> 
      <property name="supportRefreshToken" value="true"/> 
      <property name="clientDetailsService" ref="clientDetails"/> 
      <!-- VIV --> 
      <property name="accessTokenValiditySeconds" value="10"/> 
    </bean> 

    <bean id="userApprovalHandler" 
      class="org.springframework.security.oauth2.provider.approval.TokenServicesUserApprovalHandler"> 
     <property name="tokenService" ref="tokenServices"/> 
    </bean> 

    <!-- Token Management --> 
    <oauth:authrization-server client-details-service-ref="clientDetails" token-services-ref="tokenServices" 
             user-approval-handler-ref="userApprovalHandler"> 
      <oauth:authrization-code/> 
      <oauth:implicit/> 
      <oauth:refresh-token/> 
      <oauth:client-credentials/> 
      <oauth:password/>         
    </oauth:authrization-server> 

    <!-- Client Definition --> 
    <oauth:client-details-service id="clientDetails"> 

      <oauth:client client-id="my-trusted-client" 
      authorized-grant-types="password,authorization_code,refresh_token,implicit,redirect" 
      authorities="ROLE_CLIENT, ROLE_TRUSTED_CLIENT" 
      redirect-uri="/web" 
      scope="read,write,trust" 
      access-token-validity="60" 
      refresh-token-validity="600"/> 
    </oauth:client-details-service> 

    <sec:global-method-security pre-post-annotations="enabled" proxy-target-class="true"> 
      <sec:expression-handler ref="oauthExpressionHandler"/> 
    </sec:global-method-security> 

    <oauth:expression-handler id="oauthExpressionHandler"/> 
    <oauth:web-expression-handler id="oauthWebExpressionHandler"/> 

    </beans> 

Je reçois les erreurs suivantes:

cvc-complexe type.2.4.c: Le caractère générique correspondant est stricte , mais aucune déclaration
peut être trouvée pour l'élément 'authentication-manager'.

cvc-complex-type.2.4.c: Le caractère générique correspondant est strict, mais aucune déclaration
ne peut être trouvée pour l'élément 'http'.

cvc-complex-type.2.4.c: Le caractère générique correspondant est strict, mais aucune déclaration
ne peut être trouvée pour l'élément 'oauth: authrization-server'. Cvc-complex-type.2.4.c: Le caractère générique correspondant est strict, mais aucune déclaration
ne peut être trouvée pour l'élément 'sec: global-method-security'.

J'ai référencé plusieurs liens J'ai ajouté toutes les dépendances nécessaires mais je ne suis pas en mesure de comprendre ce que ces erreurs sont. C'est la première fois que je travaille sur spring-security

Répondre

0

La validation XSD fournira des erreurs informatives, mais vous devez regarder les fautes de frappe, en particulier dans les déclarations d'espace de noms, sinon les XSD subordonnés ne pourront même pas être lus.

Vous avez quatre problèmes à régler pour se rendre à un document valide:

  1. Changer

    http://www.springframework.org./schema/security 
        http://www.springframework.org./schema/security/spring-security-4.1.xsd 
    

    à

    http://www.springframework.org/schema/security 
        http://www.springframework.org/schema/security/spring-security-4.1.xsd 
    
  2. changement oauth:authrization-server à oauth:authorization-server.

  3. Remplacez oauth:authrization-code par oauth:authrization-code.

  4. changement BASIX_AUTH_FILTER à BASIC_AUTH_FILTER

+0

j'ai ajouté la dépendance printemps-sécurité-config-4.1.x à mon pom.xml .. – Cherukuri

+0

En regardant votre XML de plus près, j'ai identifié 4 correctifs tu dois faire. Réponse mise à jour – kjhughes

+0

J'ai trouvé les 2 premières fautes de frappe plus tard, juste réparé tout, fonctionne bien Merci .. :) – Cherukuri