В настоящее время я изучаю Spring Cloud OAuth и был довольно успешным в выполнении SSO с базой HTTP на сервере безопасности.Spring Cloud OAuth2: перенаправлено AGAIN на страницу входа после аутентификации, как будто не аутентифицировано при использовании имени входа в систему
Теперь я пытаюсь интегрировать учетную запись формы (страница входа в систему по умолчанию), отключив http basic. Но когда вводится правильное имя пользователя и пароль, он снова перенаправляется на страницу входа в систему сервера безопасности, как если бы он не был аутентифицирован.
- клиент переходит на службу SSO (неавторизованного)
- Пересылаемых безопасности/OAuth/авторизацию? ... (неавторизованный)
- Forwarded для безопасности/авторизации, клиент входа правильные учетные данные (проверки подлинности)
- Forwarded безопасности/OAuth/авторизацию? ... (неавторизованный)
- Forwarded сНОВА для безопасности/логин
Вот моя конфигурация для SE службы безопасности.
spring:
profiles: development
application:
name: security
security:
user:
password: none
oauth2:
client:
client-id: client
client-secret: 1234
grant-type: password, authorization_code, refresh_token
scope: read, write
auto-approve-scopes: read, write
authorized-grant-types: password, authorization_code, refresh_token
resource:
user-info-uri: http://${server.address}:${server.port}${server.context-path}/oauth/user
token-info-uri: http://${server.address}:${server.port}${server.context-path}/check_token
prefer-token-info: false
basic:
enabled: false
server:
port: 8082
context-path: /security
address: localhost
@SpringBootApplication
@EnableAuthorizationServer
public class Application extends SpringBootServletInitializer {
/**
* {@inheritDoc }
*/
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
builder.sources(Application.class);
return builder;
}
/**
* @param arguments the command line arguments
*/
public static void main(String[] arguments) {
SpringApplication.run(Application.class, arguments);
}
@Configuration
@EnableResourceServer
public static class ResourceServerConfiguration extends ResourceServerConfigurerAdapter {
@Override
public void configure(HttpSecurity http) throws Exception {
http.authorizeRequests().anyRequest().authenticated()
.and()
.formLogin().permitAll()
.and()
.logout().permitAll();
}
}
@Configuration
@EnableWebSecurity
public static class AuthenticationServerConfiguration extends WebSecurityConfigurerAdapter {
@Override
public void configure(HttpSecurity http) throws Exception {
http.authorizeRequests().anyRequest().authenticated()
.and()
.formLogin().permitAll()
.and()
.logout().permitAll();
}
}
}
Вот моя конфигурация для обслуживания клиентов:
spring:
profiles: development
application:
name: sso
security:
user:
password: none
oauth2:
client:
client-id: client
client-secret: 1234
access-token-uri: http://${server.address}:8082/security/oauth/token
user-authorization-uri: http://${server.address}:8082/security/oauth/authorize
resource:
user-info-uri: http://${server.address}:8082/security/oauth/user
token-info-uri: http://${server.address}:8082/security/check_token
prefer-token-info: false
server:
port: 8085
context-path: /sso
address: localhost
@SpringBootApplication
@EnableOAuth2Sso
public class Application extends SpringBootServletInitializer {
/**
* {@inheritDoc }
*/
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
builder.sources(Application.class);
return builder;
}
/**
* @param arguments the command line arguments
*/
public static void main(String[] arguments) {
SpringApplication.run(Application.class, arguments);
}
}
Я пропускаю что-то или иметь неправильные конфигурации? Пожалуйста исправьте.
@Diego_Arguelles у меня есть свой собственный сервер авторизации. –
Ummm ok man, [здесь] (http://stackoverflow.com/a/39188986/4433104) я нашел ответ, который, я думаю, вам поможет. –
@Diego_Arguelles Я обновил свой пост со сценарием. –