簡體   English   中英

使用帶有角度的 spring boot 登錄頁面使用 spring 安全

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM