Я перехожу на последнюю весеннюю версию безопасности. Мой текущий проект использует устаревшую конфигурацию EnableOAuth2Sso со следующей конфигурацией. Всякий раз, когда я захожу на страницу /login своего приложения, оно автоматически перенаправляется на URL-адреса, указанные ниже (сайт SSO).
security.oauth2.client.accessTokenUri=http://localhost:8081/oauth/token
security.oauth2.client.userAuthorizationUri=http://localhost:8081/oauth/authorize
security.oauth2.resource.userInfoUri=http://localhost:8081/user
С последней версией Spring Security 6, используя oauth2Login, кажется, что теперь Spring хочет, чтобы я определил список регистраций клиентов. у меня есть что-то вроде этого
spring.security.oauth2.client.registration.myclient.client-id=...
spring.security.oauth2.client.registration.myclient.client-secret=...
spring.security.oauth2.client.registration.myclient.authorization-grant-type=authorization_code
spring.security.oauth2.client.registration.myclient.redirect-uri = {baseUrl}/login/oauth2/code/myclient
spring.security.oauth2.client.provider.myclient.authorization-uri=http://localhost:8081/oauth/authorize
spring.security.oauth2.client.provider.myclient.token-uri=http://localhost:8081/oauth/token
spring.security.oauth2.client.provider.myclient.user-info-uri=http://localhost:8081/user
spring.security.oauth2.client.provider.myclient.userNameAttribute=name
Кажется, я могу установить несколько клиентов oauth в своем приложении. Однако раздражает то, что если я перейду по URL-адресу /login, я увижу страницу входа, предоставленную Spring, с моим определенным клиентом oauth в качестве единственного варианта. Мой вопрос заключается в том, как я могу добиться предыдущего поведения, чтобы не показывать эту страницу и просто перенаправлять меня на сайт единого входа для входа в систему?




Самый простой: у вас есть интерфейс, который перенаправляет пользователя на URL-адрес, указанный ссылкой, обозначающей интересующий вас вариант входа в систему (вероятно, tools в вашем случае), а не на экран входа в систему (что-то вроде http://localhost:8080/oauth2/authorization/tools).
Регистрации клиентов представляли собой список, по крайней мере, начиная с Spring Security 5. Созданная по умолчанию страница входа в систему должна выполнять автоматическое перенаправление, когда есть только одна регистрация клиента с authorization_code, но это не работает, если, например, у вас есть http.oauth2Login(oauth2 -> oauth2.loginPage("...") в вашей конфигурации. Так что, не видя вашей конфы, сложно сказать, что происходит.
Значит, в новой весенней безопасности нет способа определить отдельного клиента? Это должен был быть список клиентов?