Spring Security OAuth(angular2上的单独客户端)
Posted
技术标签:
【中文标题】Spring Security OAuth(angular2上的单独客户端)【英文标题】:Spring Security OAuth (separate client on angular2) 【发布时间】:2016-06-26 13:05:00 【问题描述】:我在配置 spring security 和 oauth2 时遇到问题。 我在他们的页面上使用了一个教程,其中有一个 angular1 应用程序在同一端口上运行并由 Tomcat 提供服务。
我想以不同的方式来做。我想做的是放置一个完全独立的 angular2 应用程序,在不同的端口上运行。
现在的问题是应用只返回8080端口(spring应用),我不知道如何改变这种行为。
我的整个 Java 代码是:
@SpringBootApplication
@EnableOAuth2Sso
@RestController
public class SocialApplication extends WebSecurityConfigurerAdapter
@RequestMapping("/user")
public Principal user(Principal principal)
return principal;
@Override
protected void configure(HttpSecurity http) throws Exception
http
.antMatcher("/**")
.authorizeRequests()
.antMatchers("/", "/log**", "/login**", "/webjars/**")
.permitAll()
.anyRequest()
.authenticated()
.and().logout().logoutSuccessUrl("/").permitAll()
.and().csrf().csrfTokenRepository(csrfTokenRepository())
.and().addFilterAfter(csrfHeaderFilter(), CsrfFilter.class);
private Filter csrfHeaderFilter()
return new OncePerRequestFilter()
@Override
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response,
FilterChain filterChain) throws ServletException, IOException
CsrfToken csrf = (CsrfToken) request.getAttribute(CsrfToken.class.getName());
if (csrf != null)
Cookie cookie = WebUtils.getCookie(request, "XSRF-TOKEN");
String token = csrf.getToken();
if (cookie == null || token != null && !token.equals(cookie.getValue()))
cookie = new Cookie("XSRF-TOKEN", token);
cookie.setPath("/");
response.addCookie(cookie);
filterChain.doFilter(request, response);
;
private CsrfTokenRepository csrfTokenRepository()
HttpSessionCsrfTokenRepository repository = new HttpSessionCsrfTokenRepository();
repository.setHeaderName("X-XSRF-TOKEN");
return repository;
public static void main(String[] args)
SpringApplication.run(SocialApplication.class, args);
【问题讨论】:
你在使用 Jhipster 吗? 这是一个重复的问题。检查答案***.com/questions/29028391/… 不,我没有使用 jhipster 【参考方案1】:解决方案在这里我已经创建了一个教程。 link to tutorial is here
【讨论】:
以上是关于Spring Security OAuth(angular2上的单独客户端)的主要内容,如果未能解决你的问题,请参考以下文章
Spring Security 入门(1-3)Spring Security oauth2.0 指南
使用 spring-session 和 spring-cloud-security 时,OAuth2ClientContext (spring-security-oauth2) 不会保留在 Redis
社交登录,spring-security-oauth2 和 spring-security-jwt?
弃用 spring-security-oauth 作为客户端