Уже решено это .Теперь, после создания пользовательской страницы входа в систему с использованием JSP, я пытаюсь показать пользователю, какое приложение пытается получить учетные данные.
В моем веб-приложении (клиенте) я поместил эту конфигурацию в application.yml
:
server:
port: 8083
context-path: /
session:
cookie:
name: UI2SESSION
security:
basic:
enabled: false
oauth2:
client:
clientId: cerberus
clientSecret: cerberus
accessTokenUri: http://localhost:8180/guardiao/oauth/token
userAuthorizationUri: http://localhost:8180/guardiao/oauth/authorize
resource:
userInfoUri: http://localhost:8180/guardiao/user/me
Когда пользователь пытается перейти на любую страницу в этом приложении, он будет перенаправлен на страницу входа Guardiao (Guardian) (мой сервер OAuth2).
Метод, используемый клиентом для аутентификации пользователя на сервере OAuth: oauth/authorize
Все работает нормально, но было бы неплохо, если бы я мог получить некоторую информацию о клиенте для показа пользователюво время входа в систему на моей пользовательской странице, чтобы пользователь мог подтвердить приложение, которое он использует.
На стороне сервера OAuth (в Guardiao) у меня есть
@Configuration
@EnableWebSecurity
public class OAuth2SecurityConfiguration extends WebSecurityConfigurerAdapter {
// some blah blah blah
@Override
protected void configure(HttpSecurity http) throws Exception {
http.csrf().disable()
.requestMatchers()
.antMatchers("/login", "/oauth/authorize")
.and()
.authorizeRequests()
.anyRequest()
.authenticated()
.and()
.formLogin()
.loginPage("/loginPage")
.loginProcessingUrl("/login")
.failureUrl("/loginPage?error=true")
.usernameParameter("username")
.passwordParameter("password")
.permitAll();
}
}
, а loginPage.jsp -простая форма с полями имени пользователя и пароля для отправки на конечную точку /login
как обычно.
Что мне нужно знать, так это: есть ли какие-нибудь JSTL-теги для получения того или иного клиента (приложение, которое пользователь пытается использовать изапрашивает логин в Guardiao), чтобы он отображался на моей странице входа в систему как Application XXXXXX is asking for your credentials
?В этом случае приложение Cerberus
.
Клиент выходит из базы данных (таблица oauth_client_details
) и всего проекта, который вы можете найти здесь