Как переопределить корень SDR @RepositoryRestController @PreAuthorize - PullRequest
0 голосов
/ 09 октября 2018

Я использую Spring Boot 2.x, Spring Data REST, Hibernate.

У меня контроллер Spring, как это:

@RepositoryRestController
@PreAuthorize("isAuthenticated()")
public class AgentController {

    @PreAuthorize("permitAll()")
    @PostMapping(path = "/agents/verifyEmail")
    public ResponseEntity<?> verifyEmail(@RequestParam(required = true) String token, @RequestParam(required = true) String tenantId, Locale locale) {
        SecurityUtils.runAs("system", Role.ROLE_ADMIN);
        return ResponseEntity.ok(verificationTokenService.verifyEmail(token, tenantId));
    }

Я думал, аннотация @PreAuthorize("permitAll()")в методе verifyEmail переопределяет корень @PreAuthorize("isAuthenticated()"), но это не так.Я должен удалить корневую аннотацию, если я хочу, чтобы мой вызов REST пришел к методу.

Это так и должно быть?Я хотел бы открыть только несколько методов, и я подумал, что можно безопасно защитить весь контроллер с помощью @PreAuthorize("isAuthenticated()") и добавить исключение только к нескольким методам, которые мне нужны, чтобы быть публичными.

Должен ли я создать новый конкретный контроллердля публичных методов?

...