Я разработал обычное приложение spring mvc и хочу добавить некоторый контроллер отдыха для разработки мобильного приложения. Я написал контроллер отдыха и конфигурации безопасности с несколькими пружинами.
Проблема в том, что они имеют приоритет, поэтому оба загружаются сразу, и все приложение выходит из строя. Я хочу использовать один в зависимости от типа запроса он получает, например, если я запрашиваю у почтальона, конфигурация безопасности Rest API должна работать, а если мы используем Интернет, конфигурация веб-безопасности должна работать.
Вот моя реализация, я не знаю, как Для этого предложите, пожалуйста, как это сделать правильно. Поскольку разделение всего Thymeleaf и MVC контроллера и перемещение вместе с Angular невозможно на данном этапе.
Обратите внимание, что у нас все остальные api определены в / v1 / ap1 / ** и вся остальная часть mvc находится в / **
Любые комментарии, предложения были бы очень признательны, это убивает мои дни с 3 дней. Заранее спасибо
@Configuration
@EnableWebSecurity
public class SecurityConfig {
// ... other codes
@Configuration
@Order(1)
public static class RestAPISecurity extends WebSecurityConfigurerAdapter {
//.. other codes
protected void configure(HttpSecurity http) throws Exception {
http
.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS)
.and()
.authorizeRequests()
.antMatchers("/api/signin/**").permitAll()
.antMatchers("/api/v1/**").hasAnyAuthority("ADMIN", "USER")
.antMatchers("/api/users/**").hasAuthority("ADMIN")
.antMatchers("/api/v1/**").authenticated()
.antMatchers("/login", "/logout", "/register", "/j_spring_security_check").permitAll()
.anyRequest().authenticated()
.and().exceptionHandling().authenticationEntryPoint(customAuthenticationEntryPoint).accessDeniedHandler(new CustomAccessDeniedHandler());
}
// .. other codes
@Configuration
@Order(2)
public static class MVCSecurityConfiguration extends WebSecurityConfigurerAdapter {
//.. other codes
// form login and other MVC stuffs
}
}