[英]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.