Как создать пользовательский @PreAuthorize MethodSecurity в Spring Boot?

#java #authorization

#java #авторизация

Вопрос:

Я разрабатываю приложение Spring Boot. И у меня есть некоторые проверки разрешений в этой программе, которые проверяются в методах контроллера. Для примера есть несколько методов проверки, чтобы проверить, есть ли какие-либо повторяющиеся записи, если этот вошедший в систему пользователь является участником и так далее. Итак, я подумал, что мне нужно двигаться дальше @PreAuthorize . Итак, как я могу создать пользовательские методы для выполнения этих повторяющихся проверок и проверок членов и использовать их через @PreAuthorize . Я знаю, что проверка дубликатов может быть выполнена в любом другом месте, но мне лично нужно использовать @PreAuthorize . Итак, кто-нибудь может мне помочь? Я действительно ценю это.

Ответ №1:

Вы можете сделать это, используя пользовательское выражение с помощью @PreAuthorise

 @PreAuthorize("isDuplicate(#id)")
@GetMapping("/organizations/{id}")
@ResponseBody
public Organization findOrgById(@PathVariable long id) {
    return organizationRepository.findOne(id);
}


public boolean isDuplicate(Long OrganizationId) {
        // add your logic here to check duplicates or any validation
}
 

обратитесь https://www.baeldung.com/spring-security-create-new-custom-security-expression для получения дополнительной информации

Комментарии:

1. Большое вам спасибо за ответ, а также за ваше время.