Я пытаюсь использовать конфигурацию java Spring Security с аннотациями. В принципе, я бы хотел использовать комбинацию аннотационного подхода со статическими конфигурациями.Spring Security и EnableGlobalMethodSecurity
http
.authorizeRequests()
.anyRequest().authenticated()
И
@Controller
@RequestMapping({"/version", "/*/version"})
@PermitAll
public class VersionController {
// Implementation
}
Вскоре я хочу, чтобы @PermitAll
должны иметь приоритет над другими избирателями. Можно ли использовать для этого случая @EnableGlobalMethodSecurity(jsr250Enabled = true)
?
Как лидер проекта Spring Security, я могу подтвердить, что это не возможно с существующей инфраструктурой. В моем варианте лучший подход состоял бы в том, чтобы вообще не использовать защиту на основе URL-адресов и создать собственный источник MethodSecurityMetadata, который по умолчанию требует, чтобы пользователь был аутентифицирован. Это гарантирует, что все меры безопасности будут выполняться по методам. Для примера см. Jsr250MethodSecurityMetadataSource. Вы можете расширить функцию GlobalMethodSecurityConfiguration и переопределить методSecurityMetadataSource, чтобы указать свой собственный метод MethodSecurityMetadataSource. –
@RobWinch Я думал, что добавление JSR250 может сделать трюк. Вот почему я сообщил о SEC-2432. – Cemo
@axtavt Означает ли это, когда весенняя безопасность применяет правила веб-безопасности, у меня нет информации о обработчиках? Я думаю, что чего-то не хватает, потому что я проверил, что голосование имеет необходимую информацию, такую как аннотации метода. Я был бы рад, что если вы сможете расширить небольшую ставку больше. Я подумывал о добавлении Jsr250Voter к моим избирателям. – Cemo