Использование разных методов аутентификации для разных клиентов - PullRequest
0 голосов
/ 23 мая 2019

У меня есть 2 клиента, и я хочу, чтобы у них была другая логика аутентификации, одна для корпоративных клиентов, а другая для частных клиентов.Это означает, что SampleClientId должен идти и аутентифицировать пользователя, используя datasource1, а OTTAppId клиент должен идти и аутентифицировать пользователя, используя datasource2.Как я могу сделать это с помощью Spring Security?Мне не удалось найти какую-либо логику, в которой я могу установить различные службы userDetails для обеспечения безопасности пружин.

Я думал о предоставлении заголовка в запросе, чтобы определить, какой тип пользователя выполняет запрос.Предоставив authenticationFilters и authenticationProviders для пружины, я смогу достичь этого, но я хочу знать, есть ли способ иметь некоторую логику для clientId, чтобы определить, какой userDetailsService следует использовать.

   @Override
    public void configure(final ClientDetailsServiceConfigurer clients) 
     throws Exception {
        clients.inMemory()
                .withClient("SampleClientId")
                .secret(passwordEncoder.encode("secret"))
                .authorizedGrantTypes( "password", "authorization_code", "refresh_token", "implicit")
                .scopes( "user_info","read", "write", "trust")
                .autoApprove(true)
  .accessTokenValiditySeconds(3600)// 1 hour
                .refreshTokenValiditySeconds(3600*24*10)// 10 day
                .and()
                .withClient("OTTAppId")
                .secret(passwordEncoder.encode("secret1"))
                .authorizedGrantTypes( "password", "authorization_code", "refresh_token", "implicit")
                .scopes("user_info","read", "write", "trust")
                .autoApprove(true)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...