В настоящее время я использую сервер авторизации Spring Boot Oauth2. тип разрешения — код авторизации. Могу ли я в любом случае избежать использования формы входа в систему для типа предоставления кода авторизации?
Могу ли я сделать вызов для отдыха в конечной точке авторизации?
есть ли какие-либо ссылки, которым я могу следовать?
давайте возьмем приведенное ниже в качестве примера и предположим, что client_id является клиентом, а client_secret является секретным.
http://localhost:8080/oauth2/authorize?response%5C_type=code&client%5C_id=client&redirect%5C_uri=http://127.0.0.1:8080/login/oauth2/code/oidc-client&scope=openid
Если описанный выше подход невозможен,
тогда можно ли добавить больше полей в форму входа и выполнить проверку не только на основе идентификатора клиента и секрета клиента, но также на основе статуса этих полей для примера
Имя сотрудника: Сотрудник-тестировщик Возраст сотрудника: 17 лет Идентификатор клиента: клиент Секрет клиента: секрет
сначала я хочу проверить, существует ли TestEmployee в базе данных тогда я хочу убедиться, что он старше 25 лет
если нет, то я хочу отобразить исключение проверки входа в систему... Это возможно ?
Я пытался использовать тип носителя в качестве приложения JSON, но, похоже, он не работает.
http
.securityMatcher(endpointsMatcher)
.authorizeHttpRequests((authorize) -> authorize
.anyRequest().authenticated()
)
.csrf(csrf -> csrf.ignoringRequestMatchers(endpointsMatcher))
.oauth2ResourceServer(resourceServer -> resourceServer
.jwt(Customizer.withDefaults())
)
.exceptionHandling((exceptions) -> exceptions
.defaultAuthenticationEntryPointFor(
new LoginUrlAuthenticationEntryPoint("/login"),
**new MediaTypeRequestMatcher(MediaType.APPLICATION_JSON)**
)
)
.apply(authorizationServerConfigurer);
Могу ли я в любом случае избежать использования формы входа в систему для типа предоставления кода авторизации?
Невозможно обойти форму входа в authorization_code
flow.
тогда можно ли добавить больше полей в форму входа?
Да, это возможно. Проверьте: https://github.com/spring-projects/spring-authorization-server/issues/533
Для валидации вы можете реализовать собственный AuthenticationProvider
. Прочтите эту статью, чтобы получить некоторые рекомендации.