В своем приложении я до сих пор использовал поток предоставления пароля OAuth2 для генерации токена доступа JWT клиентам, предоставляющим свое имя пользователя и пароль с помощью Spring Security и Spring OAuth.Затем они используют этот токен во всех запросах к моему REST API Spring Boot.
Некоторые из моих клиентов теперь хотят использовать вместо этого проверку подлинности SAML.Моя идея - создать отдельную конечную точку /saml/accessToken
и защитить ее с помощью Spring SAML.Когда аутентификация SAML завершена, пользователь перенаправляется обратно на /saml/accessToken
, теперь с действительной аутентификацией, и получает JWT, который клиент может использовать для дальнейшей связи с моим REST API.
Мне нужен контроллерметод, который принимает аутентифицированный SAMLAuthenticationToken, генерирует JWT, используя его учетные данные, и возвращает его клиенту:
@RequestMapping(value = "/saml/accessToken")
public String getAccessToken(SAMLAuthenticationToken authentication) {
return accessTokenFactory.create(authentication);
}
Это accessTokenFactory
в приведенном выше примере, с которым мне нужна помощь.Я хотел бы как можно больше следовать экосистеме кодирования Spring и избегать использования «хакерского» решения, чтобы я мог использовать уже существующие TokenEnhancers и т. Д.
Чтолучший способ создать токен доступа JWT из SAMLAuthenticationToken?