Я использую Spring OAuth 2.0, и я хочу защитить свое приложение от атаки перенаправления URL. Есть ли способ проверить URL перенаправления на сервере авторизации?Spring OAuth 2.0 - Как проверить redirect_uri?
1
A
ответ
1
Сервер авторизации должен выполнять только перенаправление, если redirect_uri
соответствует зарегистрированному клиентом. Поэтому вам не нужно будет выполнять отдельную проверку.
Если у вас есть сомнения, попробуйте отправить запрос авторизации совершенно другим redirect_uri
и посмотреть, что произойдет.
0
Должен быть реализован класс ClientDetailsService
и настроить зарегистрированные перенаправления uri.
@Service
@Transactional
public class CustomClientDetailsService implements ClientDetailsService {
@Override
public ClientDetails loadClientByClientId(String clientId) {
String registeredRedirectUris; // Get registeredRedirectUris
BaseClientDetails clientDetails = new BaseClientDetails();
clientDetails.setRegisteredRedirectUri(registeredRedirectUris);
return clientDetails;
}
}
Благодарим вас за ответ. Но как сервер авторизации проверяет, соответствует ли redirect_uri одному зарегистрированному клиентом? –
Если вы хотите узнать больше о деталях, вы всегда можете [взглянуть на код] (https://github.com/spring-projects/spring-security-oauth/blob/master/spring-security-oauth2/src /main/java/org/springframework/security/oauth2/provider/endpoint/DefaultRedirectResolver.java#L112). –
Да, поэтому в соответствии с исходным кодом сервер авторизации должен реализовать этот метод, чтобы проверить, соответствует ли запрошенный URI перенаправления указанному URI перенаправления, используя этот метод: redirectMatches (String requestRedirect, String redirectUri) –