У меня проблемы с безопасностью.У меня есть веб-приложение, которое основано на весенней загрузке, и использует угловой 7 для пользовательского интерфейса.Я создал безопасность, настроил ее, и все было в порядке.В Angular я использовал прокси, который преобразовывает URL-адреса из "localhost: 4200" в "localhost: 9501".
{
"/api/*":{
"target": "http://localhost:9501",
"secure": false,
"logLevel": "debug"
}
}
А в бэкэндах у меня есть контроллер запуска.
@Controller
public class StartController {
@RequestMapping({"/ui/**"})
public String redirect() {
return "forward:/index.html";
}
}
Но когда я интегрировал в свое приложение загрузочный угол, у меня возникла проблема.Когда я написал в "(/ * *). AllowAll ()", все в порядке, и это работает.Но когда я попробовал "(/ api / auth / **). AllowtAll ()" у меня возникла проблема "для доступа к этому ресурсу требуется полная аутентификация".
@Configuration
@EnableWebSecurity
@EnableGlobalMethodSecurity(prePostEnabled = true)
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
private UserDetailsServiceImpl userDetailsServiceImpl;
@Autowired
private JwtAuthEntryPoint unauthorizedHandler;
public JwtAuthTokenFilter authenticationJwtTokenFilter() {
return new JwtAuthTokenFilter();
}
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.userDetailsService(userDetailsServiceImpl).passwordEncoder(passwordEncoder());
}
@Bean
@Override
public AuthenticationManager authenticationManagerBean() throws Exception {
return super.authenticationManagerBean();
}
@Bean
public PasswordEncoder passwordEncoder() {
return new BCryptPasswordEncoder();
}
@Override
protected void configure(HttpSecurity http) throws Exception {
http.csrf().and().cors().disable()
.authorizeRequests()
// .antMatchers("/**").permitAll()
//.antMatchers("/home").permitAll()
.antMatchers("/api/auth/**").permitAll()
.anyRequest().authenticated()
.and()
.exceptionHandling().authenticationEntryPoint(unauthorizedHandler)
.and()
.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS);
http.addFilterBefore(authenticationJwtTokenFilter(), UsernamePasswordAuthenticationFilter.class);
}