현재 스프링 클라우드 OAuth를 연구 중이며 보안 서버에서 HTTP 기본을 사용하여 SSO를 수행하는 데 성공했습니다.스프링 클라우드 OAuth2 : 폼 로그인을 사용할 때 인증되지 않은 것처럼 인증 후 로그인 페이지로 다시 지정
이제 폼 로그인 (스프링 기본 로그인 페이지)을 통합하려고 시도하고 있으며 http 기본을 사용하지 않도록 설정하고 있습니다. 그러나 올바른 사용자 이름과 암호가 입력 될 때마다 인증되지 않은 것처럼 다시 보안 서버의 로그인 페이지로 리디렉션됩니다.
- 클라이언트는
- 보안에 전달 (무단) SSO 서비스 /의 OAuth/권한을 부여 간다? (무단)
- 보안/로그인에 전달, 클라이언트 입력 올바른 자격 증명 (인증)
- 보안에 전달하는 것은/OAuth를 /인가? (무단)는 보안/로그인 여기
에 다시 전달
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);
}
}
내가 실종 무언가 또는 잘못된 구성을 갖는 여기
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();
}
}
}
내 클라이언트 서비스를위한 구성입니다? 수정 해주세요.
@Diego_Arguelles :
나는이 샘플 프로젝트를 따랐다. –Ummm ok man, [여기] (http://stackoverflow.com/a/39188986/4433104) 나는 당신을 도울 것이라고 생각하는 대답을 발견했다. –
@Diego_Arguelles 시나리오를 사용하여 내 게시물을 업데이트했습니다. –