Spring OAuth2 - убедитесь, что вызов OAuth2ProtectedResourceFilter - PullRequest
0 голосов
/ 07 марта 2012

Как мне убедиться, что в OAuth2ProtectedResourceFilter выполняется вызов при отправке запроса с oauth_token в заголовке авторизации?

Ответы [ 2 ]

0 голосов
/ 19 мая 2014

Как уже упоминалось, все, что вы хотите защитить, должно пройти через защитный фильтр пружины:

Вот пример того, как фильтр отображается перед сервлетом (пружинный MVC DispatcherServlet, используемый дляконечные точки авторизации) Вы можете дополнительно сопоставить тот же фильтр с любым другим сервлетом, например с настроенным сервлетом jersey.

В / WEB-INF / web.xml вам нужно сопоставление фильтра как:

<filter>
    <filter-name>springSecurityFilterChain</filter-name>
    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>

<filter-mapping>
    <filter-name>springSecurityFilterChain</filter-name>
    <servlet-name>spring-dispatcher</servlet-name>
    <dispatcher>FORWARD</dispatcher>
    <dispatcher>REQUEST</dispatcher>
</filter-mapping>

<servlet>
    <servlet-name>spring-dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
      <param-value>/WEB-INF/spring-mvc-dispatcher-servlet.xml</param-value>
    </init-param>
</servlet>

<servlet-mapping>
    <servlet-name>spring-dispatcher</servlet-name>
    <url-pattern>/*</url-pattern>
</servlet-mapping>

К обеспечивает фильтрацию каждого вызова '/ *' или любого другого шаблона, который вы используете http изПространство имен безопасности Spring и фильтр с именем OAuth2AuthenticationProcessingFilter , который будет следить за заголовком авторизации Bearer , вам потребуется что-то подобное в вашем / WEB-INF / spring-mvc-dispatcher-servlet.xml или где-либо настроена ваша весенняя защита:

<http pattern="/**" 
      create-session="never" 
      authentication-manager-ref="userAuthenticationManager"
      access-decision-manager-ref="accessDecisionManager" 
      use-expressions="true">

    <anonymous enabled="false" />
    <custom-filter ref="oAuth2AuthenticationFilter" position="PRE_AUTH_FILTER" />
    <access-denied-handler ref="oAuthAccessDeniedHandler" />
    <intercept-url pattern="/**" access="isAuthenticated()" />        
</http>

<beans:bean id="oAuth2AuthenticationFilter" class="org.springframework.security.oauth2.provider.authentication.OAuth2AuthenticationProcessingFilter">
    <beans:property name="authenticationManager" ref="userAuthenticationManager"/>
    <beans:property name="authenticationEntryPoint" ref="oAuthAuthenticationEntryPoint"/>
</beans:bean>
0 голосов
/ 07 марта 2012

Он всегда проходит через фильтр, если отображается правильно

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...