Spring security permissionall () работает для @RestController, но не для @Controller - PullRequest
0 голосов
/ 06 мая 2020

В моем приложении есть несколько API, которые я хочу разрешить без аутентификации. Итак, я добавил эти шаблоны в файл разрешения (). Но это работает только в том случае, если эти шаблоны находятся внутри аннотации @RestController. Если эти шаблоны находятся в аннотации @Controller (я хочу вернуть представления), Spring запрашивает аутентификацию, даже если они находятся в разрешении ().

класс WebsecutiryConfig

@Override
    protected void configure(HttpSecurity http) throws Exception {
        http.csrf().disable().
        .authorizeRequests().antMatchers("/pattern1", "/pattern2").permitAll()
        .anyRequest().authenticated()
}

Класс с @ Аннотация RestController

@RestController
public class RESTClass {

    @GetMapping("/pattern1")
    public String hello() {
        return "my response";
    }

Класс с аннотацией @Controller

@Controller
public class ControllerClass {

    @GetMapping("/pattern2")
    public String hello(Model model) {
        return "my view";
    }

enter image description here

enter image description here Итак как разрешить пользователям видеть эти представления без аутентификации?

1 Ответ

0 голосов
/ 06 мая 2020

Вот и разобрался. Происходило то, что весна разрешала загрузку файла представления без аутентификации, но не позволяла загружать связанные файлы css и js. Поэтому мне пришлось добавить их в шаблон permissionall ().

...