2015-09-01 6 views
1

Я пытаюсь использовать весеннюю загрузку для создания авторизации oauth2, которая поддерживает только поток учетных данных клиента. Понимая этот поток, клиент напрямую обращается к конечной точке /oauth/token. Есть ли способ отключить конечную точку /oauth/authorize в весеннем ботинке и разрешить прямой доступ к /oauth/token без предварительного разрешения?spring security oauth2 client_credentials только поток

@Configuration 
@EnableAuthorizationServer 
public class OAuth2Configuration extends AuthorizationServerConfigurerAdapter { 

    @Autowired 
    private AuthenticationManager authenticationManager; 

    @Override 
    public void configure(AuthorizationServerEndpointsConfigurer endpoints) throws Exception { 
     // TODO: Is there something I can do here to disable /oauth/authorize? 
     endpoints.authenticationManager(authenticationManager); 
    } 

    @Override 
    public void configure(ClientDetailsServiceConfigurer clients) throws Exception { 
     // client details configuration 
    } 

} 

ответ

4

Я не могу говорить отключить Авторизоваться конечную точку, но вы правы, что вы можете перейти непосредственно к конечной точке маркера с клиентом потока учетных данных. Я, вероятно, повторяю то, что вы уже знаете, но учетные данные для «клиента» (client_id/client_secret) отличаются от учетных данных «пользователя» (имя пользователя/пароль). «Пользователь» переходит к конечной точке авторизации, чтобы клиент мог получить токены из конечной точки маркера. «Клиент» (в потоке учетных данных клиента) напрямую предоставляет учетные данные клиента конечной точке маркера. Вам нужно отключить конечную точку авторизации?

Итак, для потока client_credentials вам не нужно сначала авторизовать (вам не нужно его отключать). Вот как бы завить фишку, если ваш сервер авторизации пружинными загрузки был на локальном хосте: 8080:

локон -H «Authorization: Basic d2VhcHA6» -X POST http://localhost:8080/oauth/token?grant_type=client_credentials

где d2VhcHA6 является base64 кодирование вашего "client_id: client_secret"

+0

Спасибо. Я просто пытаюсь избежать разоблачения конечной точки, которая не будет использоваться. Но все остальное прекрасно работает с client_credentials. –

Смежные вопросы