Как уже упоминалось, все, что вы хотите защитить, должно пройти через защитный фильтр пружины:
Вот пример того, как фильтр отображается перед сервлетом (пружинный 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>