Настраиваемый централизованный сервер авторизации Spring (oauth) - ошибка аутентификации и настройки - PullRequest
0 голосов
/ 20 ноября 2018

Я знаком и с весной, и с OAuth, что делает эту захватывающую проблему для меня застреванием!

Из того, что я понял, мне нужно создать централизованный сервер авторизации с oauthи откройте ID.

У нас есть центральная база данных пользователей, и мы хотим, чтобы все наши приложения совершали вызов на сервер авторизации, входили в систему, автоматически одобряли (поскольку единственный трафик должен поступать с наших серверов) иперенаправьте их на основе URI, который они передают.

В идеале, мы бы дали им токен авторизации и идентификатор токена (открытый идентификатор), чтобы у них была информация о пользователе, вошедшем в систему.

Итак, яЯ работаю над настройкой загрузочного приложения Spring, где оно действует как сервер авторизации.Пока я вижу страницу входа - но каждая попытка входа заканчивается следующей ошибкой:

Whitelabel Error Page

This application has no explicit mapping for /error, so you are seeing this as a fallback.

Вот что у меня есть для этого сервера:

SpringBootServletInitializer(инициализатор приложения) - com.company

@SpringBootApplication
@Configuration
@EnableAutoConfiguration
@ComponentScan
public class Application extends SpringBootServletInitializer {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

AuthorizationServerConfigurerAdapter (сервер авторизации) - com.company.config

@Configuration
@EnableAuthorizationServer
public class AuthorizationServer extends AuthorizationServerConfigurerAdapter {

    @Override
    public void configure(ClientDetailsServiceConfigurer clients) throws Exception {
        clients.inMemory()
            .withClient("my_client")
                .secret("my_secret")
                .autoApprove(true)
                .authorizedGrantTypes("authorization_code", "refresh_token", "password") 
                .scopes("openid")
                .accessTokenValiditySeconds(600);
    }
}

WebSecurityConfigurerAdapter(security) - com.company.config

@Configuration
@EnableWebSecurity
@EnableGlobalMethodSecurity(prePostEnabled = true)
public class SecurityConfig extends WebSecurityConfigurerAdapter {

    @Override
    @Autowired
    protected void configure(AuthenticationManagerBuilder auth) throws Exception {
        auth
            .inMemoryAuthentication()

            .withUser("user").password("password")
            .roles("USER");
    }

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
            .formLogin()

            .and()

            .httpBasic().disable()
            .anonymous().disable()
            .authorizeRequests().anyRequest().authenticated();

        // disabled basic auth and configured to use dafault Spring Security form login.
    }
}

Итак, вопросы:

  1. Что это за ошибка и почему я ее вижу?
  2. Как мне настроить страницу входа, которую я вижу?Я отчаянно просматриваю документацию Spring, и я потерян / поражен.У меня нет ничего в папке ресурсов за пределами имеющегося у меня файла свойств.

1 Ответ

0 голосов
/ 20 ноября 2018

ошибка из-за того, что пружина включена для отображения на страницу ошибки, потому что есть исключение.

Вы можете указать свою собственную страницу входа следующим образом:

       .formLogin()
          .loginPage("/login.html") //your custom login page
          .defaultSuccessUrl("/homepage.html", true) //welcome page after login success
          .failureUrl("/login.html?error=true") // when AccessDenied happens
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...