3

I have a problem with configuring spring security and oauth2. I used a tutorial on their page, where there was an angular1 app that was running on the same port and was served from Tomcat.

I want to do it in a different way. What I want to do is put a completely separate angular2 app, running on a different port.

Now the problem is that the app only returns to port 8080 (spring app) and I don't know how to change this behavior.

My whole Java code is:

@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);
}
}
danday74
  • 52,471
  • 49
  • 232
  • 283
user3212350
  • 401
  • 1
  • 6
  • 18

1 Answers1

0

Solution is here I have create a tutorial. link to tutorial is here

AndroidLover
  • 1,171
  • 1
  • 13
  • 16