Интеграция Spring MVC с доменом безопасности Wildfly и Java Security

#spring-mvc #security #jax-rs #wildfly

#spring-mvc #Безопасность #jax-rs #wildfly

Вопрос:

У меня есть приложение с Spring MVC 5, работающее на Wildfly 14.

У Wildfly настроен домен безопасности, и я пытаюсь понять, как получить относительную информацию, используя Spring MVC.

В старых приложениях я могу использовать информацию о домене безопасности с помощью EJBS: например, я могу получить доступ к информации о вызывающем абоненте в EJB без состояния с помощью SecurityContext:

 @Context
private SecurityContext sec;

@GET
@Path("test")
@PermitAll
@Produces({ MediaType.APPLICATION_JSON })
public MyResult test() {
    Principal principal = sec.getUserPrincipal();
    boolean isUser = sec.isUserInRole("USER");
    return new MyResult(isUser  " Hello, "   sec.getUserPrincipal()   "!");
}
  

Чтобы использовать SecurityContext и аннотацию PermitAll, я использовал Resteasy (предоставленный Wildfly), включив его в web.xml:

 <context-param>
    <param-name>resteasy.role.based.security</param-name>
    <param-value>true</param-value>
</context-param>
  

Сейчас я использую Spring MVC и не нахожу ничего, что могло бы воспроизвести эту конфигурацию с помощью EJB вслух и RestEasy.

Как я могу внедрить SecurityContext в мои контроллеры?

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

1. Если вы используете Spring MVC, вам было бы намного лучше просто использовать Spring Security.