[英]Using spring boot with angular for login page using spring security
我正在尝试使用 Angular 作为前端和 spring boot 作为控制器来实现登录和欢迎页面。
在我的 WebSecuirtyConfigureAdapter 中
@Override
protected void configure(HttpSecurity http) throws Exception
{
http.httpBasic().and()
.authorizeRequests()
.antMatchers("/index.html").permitAll()
.antMatchers("/src/assets/logo.png").permitAll()
.antMatchers("/main.js").permitAll()
.antMatchers("/main.js.map").permitAll()
.antMatchers("/polyfills.js").permitAll()
.antMatchers("/polyfills.js.map").permitAll()
.antMatchers("/styles.js").permitAll()
.antMatchers("/styles.js.map").permitAll()
.antMatchers("/vendor.js").permitAll()
.antMatchers("/vendor.js.map").permitAll()
.antMatchers("/runtime.js.map").permitAll()
.antMatchers("/runtime.js").permitAll()
.antMatchers("/saml/**").permitAll()
.antMatchers("/favicon.ico").permitAll()
.antMatchers("/assets/logo.png").permitAll()
.antMatchers("/oauth/**").permitAll()
.antMatchers("/userinfo").permitAll()
.antMatchers("/").permitAll()
.anyRequest()
.authenticated()
.and()
.formLogin().loginPage("/#/login").permitAll()
.successHandler(this.successHandler)
.failureHandler(this.failureHandler)
.and()
.exceptionHandling()
.authenticationEntryPoint(this.entryPoint)
.and()
.csrf().csrfTokenRepository(csrfTokenRepository()).ignoringAntMatchers("/url5/**")
.and()
.addFilterAfter(filter, BasicAuthenticationFilter.class)
.addFilterBefore(filter, CsrfFilter.class)
.addFilterAfter(this.csrfHeaderFilter(), CsrfFilter.class);
}
我需要将任何未经身份验证的请求重定向到 authenticationEntryPoint 但由于我必须添加“/”以允许 Angular 工作,因此无法按预期工作。 由于允许“/”,因此每个请求都被允许,并且我没有点击将我定向到 /#/login 处的登录页面的入口点。 如果我删除“/”,我可以点击 entryPoint 但 Angular 不会呈现,因为 Spring Security 不允许加载。 我需要我未经授权的请求通过入口点,因为这是一个遗留代码,它可以处理可能与请求一起发送的参数。 你能帮我如何实现同样的目标吗?
尝试添加一个Controller
,它将转发到index.html
。
@Controller
public class UiController {
@RequestMapping({
"/",
"/login", //my login page is on /login
})
public String handler() {
return "forward:index.html";
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.