2016-09-09 31 views
5

Porcja applicationContext.xmlWiosna bezpieczeństwo klienta filtr przesłonięte przez podstawowego zabezpieczenia http

<bean id="springSecurityFilterChain" class="org.springframework.security.web.FilterChainProxy"> 
     <security:filter-chain-map request-matcher="ant"> 
      <security:filter-chain pattern="/health" 
       filters="none" /> 
      <security:filter-chain pattern="/swagger-ui.html" 
       filters="none" /> 
      <security:filter-chain pattern="/images/**" 
       filters="none" /> 
      <security:filter-chain pattern="/webjars/**" 
       filters="none" /> 
      <security:filter-chain pattern="/v2/apidocs" 
       filters="none" />    
      <security:filter-chain pattern="/*.ico" 
       filters="none" />    
      <security:filter-chain pattern="/**" 
       filters="customAuthorizationFilter" /> 
     </security:filter-chain-map> 

pliku: Bezpieczeństwo-context.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" 
      xsi:schemaLocation="http://www.springframework.org/schema/beans 
    http://www.springframework.org/schema/beans/spring-beans-4.0.xsd 
    http://www.springframework.org/schema/security 
    http://www.springframework.org/schema/security/spring-security-4.0.xsd"> 

    <http> 
     <intercept-url pattern="/swagger-ui.html" access="hasRole('ROLE_ADMIN')" /> 
     <http-basic/> 
     <csrf disabled="true"/> 
    </http> 

    <authentication-manager> 
     <authentication-provider> 
      <user-service> 
       <user name="abc" password="Basicauth" authorities="ROLE_ADMIN" /> 
      </user-service> 
     </authentication-provider> 
    </authentication-manager> 

</beans:beans> 

Było niestandardowy filtr zabezpieczyć metodę uwierzytelniania żądanie i sprawdzanie błędu. Po uwzględnieniu pliku security-context.xml, dla zabezpieczeń opartych na zasobach dla określonego punktu końcowego (swagger-ui.html) za pomocą nazwy użytkownika i hasła.

Po tej zmianie zabezpieczeń niestandardowy auth filtr nie działa, może być przesłonięty przez nową implementację zabezpieczeń. Jak to może zostać naprawione ?

Odpowiedz

0

nie mają wystarczająco dużo czasu, aby przetestować go przed oddaniem się odpowiedź, ale można spróbować stworzyć swój własny filtr, jak poniżej:

<custom-filter ref="customAuthorizationFilter" before="BASIC_AUTH_FILTER"/>

myślę, że jest o pierwszeństwa filtrów.