У нас есть маркер OAuth с использованием Spring, который принимает имя пользователя/пароль/ClientId/Secret, что отлично работает. Для внешнего клиента нам просто нужно ввести имя пользователя и пароль и создать токен OAuth.Значок Spring OAuth2 без ClientId и ClientSecret для внешних клиентов
<security:http pattern="/oauth/token" create-session="stateless"
authentication-manager-ref="clientAuthenticationManager"
xmlns="http://www.springframework.org/schema/security">
<security:intercept-url pattern="/oauth/token" access="IS_AUTHENTICATED_FULLY" />
<security:anonymous enabled="false" />
<security:http-basic entry-point-ref="clientAuthenticationEntryPoint" />
<!-- include this only if you need to authenticate clients via request parameters -->
<security:custom-filter ref="clientCredentialsTokenEndpointFilter" after="BASIC_AUTH_FILTER" />
<security:access-denied-handler ref="oauthAccessDeniedHandler" />
</security:http>
Ниже приведен новый код, который нам нужно добавить, но он запрашивает имя пользователя и пароль в браузере.
<security:http pattern="/**external**/oauth/token" create-session="stateless"
authentication-manager-ref="clientAuthenticationManager"
xmlns="http://www.springframework.org/schema/security">
<security:intercept-url pattern="/external/oauth/token" access="IS_AUTHENTICATED_FULLY" />
<security:anonymous enabled="false" />
<security:http-basic entry-point-ref="clientAuthenticationEntryPoint" />
<security:custom-filter ref="clientCredentialsTokenEndpointFilter" after="BASIC_AUTH_FILTER" />
<security:access-denied-handler ref="oauthAccessDeniedHandler" />
</security:http>
Пожалуйста, руководство, если мы можем генерировать OAuth без ClientId и внутренне пройти ClientId генерировать OAuth.
Согласен с вашей точки зрения, но то, что я хочу достичь, - это генерация токена с использованием внутренне прошедшего clientId, где пользователь только передает имя пользователя и пароль с помощью конфигурации весовой безопасности xml. – Rahul
Вы говорите об издании неявного токена? С помощью Implicit grant клиент Oauth перенаправит браузер пользователя на/oauth/authorize на сервере. Этот URL-адрес защищен, поэтому браузер перенаправляется на страницу входа в систему, и пользователь аутентифицируется с использованием проверки подлинности на основе форм. После входа в браузер браузер отобразит страницу утверждения, а использование r одобрит/запретит доступ для приложения, идентифицированного clientId. Клиент OAuth никогда не должен видеть учетные данные, только доверенный сервер OAuth должен, в противном случае нет необходимости использовать OAuth. –