Сервер аутентификации Google Oauth2 для доступа к API весенней загрузки и локальной проверки пользователяJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Сервер аутентификации Google Oauth2 для доступа к API весенней загрузки и локальной проверки пользователя

Сообщение Anonymous »

У меня есть приложение для Android, которое подключается к API для отдыха, разработанному с помощью Spring Boot.
Пользователь, входящий в свою учетную запись Google на телефоне, получает токен jwt (openid) с сервера авторизации Google. Затем этот токен отправляется в API для аутентификации пользователя.
Правильно ли, что сервер ресурсов может доверять почтовому адресу в переданном токене jwt?
Это работает хорошо с этим фрагментом кода безопасности Spring:

Код: Выделить всё

public class SecurityConfigurationO2Auth {

private static Logger logger = LoggerFactory.getLogger(SecurityConfigurationO2Auth.class);

@Value("${spring.security.oauth2.resourceserver.jwt.jwt-set-uri}")
private String jwkSetUri;

@Bean
public JwtDecoder jwtDecoder() {
JwtDecoder jwtDecoder = NimbusJwtDecoder.withJwkSetUri(jwkSetUri).build();
return new JwtDecoder() {
@Override
public Jwt decode(String token) throws JwtException {
logger.info(token);
Jwt jwt = jwtDecoder.decode(token);
logger.info("Access requested for : " + jwt.getClaimAsString("email"));
logger.info("that expires at : " + jwt.getClaimAsString("exp"));
return jwt;
}
};
}

@Bean
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
http.authorizeHttpRequests().anyRequest().authenticated().and().sessionManagement()
.sessionCreationPolicy(SessionCreationPolicy.STATELESS).and().oauth2ResourceServer().jwt()
.decoder(jwtDecoder()).and().and().cors().and().csrf().disable();

return http.build();
}
}
Благодаря этому решению любой, у кого есть учетная запись Google, может получить доступ к моему API для отдыха.
У меня нет возможности настроить сервер авторизации Google, чтобы ограничить доступ к набору предопределенных почтовых адресов. .
Итак, я хотел бы иметь возможность проверить существование почтового адреса в локальной базе данных. Если его нет, ответьте кодом 401 «Не авторизован».
Не могли бы вы подсказать, как настроить это в цепочке фильтров безопасности? Добавить фильтр, настроить oauth2ResourceServer?
Я хотел бы использовать лучший подход к Spring Security

Подробнее здесь: https://stackoverflow.com/questions/789 ... -user-loca
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»