zhongrijian
2024-06-03 54c40c58a5842651d74eb6a62830080c14ccf881
登录失败配置调整
5 files modified
2 files added
84 ■■■■■ changed files
blade-auth/pom.xml 5 ●●●●● patch | view | raw | blame | history
blade-auth/src/main/java/org/springblade/auth/config/CustomAuthenticationFailureHandler.java 22 ●●●●● patch | view | raw | blame | history
blade-auth/src/main/java/org/springblade/auth/config/SecurityConfiguration.java 17 ●●●● patch | view | raw | blame | history
blade-auth/src/main/java/org/springblade/auth/constant/Oauth2Constants.java 19 ●●●●● patch | view | raw | blame | history
blade-auth/src/main/resources/application-dev.yml 7 ●●●●● patch | view | raw | blame | history
blade-auth/src/main/resources/application-prod.yml 7 ●●●●● patch | view | raw | blame | history
blade-auth/src/main/resources/application-test.yml 7 ●●●●● patch | view | raw | blame | history
blade-auth/pom.xml
@@ -123,6 +123,11 @@
            <groupId>org.springblade</groupId>
            <artifactId>blade-starter-excel</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpmime</artifactId>
            <version>4.5.5</version>
        </dependency>
    </dependencies>
    <build>
blade-auth/src/main/java/org/springblade/auth/config/CustomAuthenticationFailureHandler.java
New file
@@ -0,0 +1,22 @@
package org.springblade.auth.config;
import org.springframework.security.core.AuthenticationException;
import org.springframework.security.web.authentication.AuthenticationFailureHandler;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
public class CustomAuthenticationFailureHandler implements AuthenticationFailureHandler {
    @Override
    public void onAuthenticationFailure(HttpServletRequest request, HttpServletResponse response,
                                        AuthenticationException exception) throws IOException {
        response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter writer = new PrintWriter(new OutputStreamWriter(response.getOutputStream(), "UTF-8"));
        writer.write("{\"error_description\":\"" + exception.getMessage() + "\"}");
        writer.flush();
    }
}
blade-auth/src/main/java/org/springblade/auth/config/SecurityConfiguration.java
@@ -18,6 +18,7 @@
import lombok.AllArgsConstructor;
import lombok.SneakyThrows;
import org.springblade.auth.constant.Oauth2Constants;
import org.springblade.auth.support.BladePasswordEncoderFactories;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@@ -28,6 +29,8 @@
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.security.crypto.password.PasswordEncoder;
import javax.annotation.Resource;
/**
 * Security配置
 *
@@ -37,6 +40,9 @@
@AllArgsConstructor
@Order(1)
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {
    @Resource
    private Oauth2Constants oauth2Constants;
    @Bean
    @Override
@@ -57,13 +63,14 @@
        http.csrf().disable();
        http.formLogin()
            //自定义认证成功跳转
            .successHandler(new CustomAuthenticationSuccessHandler("http://192.168.1.50:1888/api/oauth/authorize"))
            .loginPage("http://192.168.1.50:1888/#/login")
//            .loginPage("/oauth/login")
            .loginProcessingUrl("/oauth/form");
            .successHandler(new CustomAuthenticationSuccessHandler(oauth2Constants.getAuthorizeUrl()))
            .loginPage(oauth2Constants.getLoginPage())
            .loginProcessingUrl(oauth2Constants.getLoginProcessingUrl())
            .failureHandler(new CustomAuthenticationFailureHandler())
        ;
        // 认证失败自定义登录页跳转
        http.exceptionHandling()
            .authenticationEntryPoint(new CustomAuthenticationEntryPoint("http://192.168.1.50:1888/#/login"));
            .authenticationEntryPoint(new CustomAuthenticationEntryPoint(oauth2Constants.getLoginPage()));
    }
blade-auth/src/main/java/org/springblade/auth/constant/Oauth2Constants.java
New file
@@ -0,0 +1,19 @@
package org.springblade.auth.constant;
import lombok.Data;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
@Data
@Component
public class Oauth2Constants {
    @Value("${oauth2.base.authorizeUrl}")
    private String authorizeUrl;
    @Value("${oauth2.base.loginPage}")
    private String loginPage;
    @Value("${oauth2.base.loginProcessingUrl}")
    private String loginProcessingUrl;
}
blade-auth/src/main/resources/application-dev.yml
@@ -23,3 +23,10 @@
social:
  enabled: true
  domain: http://127.0.0.1:1888
# oauth2 配置信息
oauth2:
  base:
    authorizeUrl: http://192.168.1.50:1888/api/oauth/authorize
    loginPage: http://192.168.1.50:1888/#/login
    loginProcessingUrl: /oauth/form
blade-auth/src/main/resources/application-prod.yml
@@ -23,3 +23,10 @@
social:
  enabled: true
  domain: http://127.0.0.1:1888
# oauth2 配置信息
oauth2:
  base:
    authorizeUrl: https://srgdjczzxtpt.com:2080/api/oauth/authorize
    loginPage: https://srgdjczzxtpt.com:2080/#/login
    loginProcessingUrl: /oauth/form
blade-auth/src/main/resources/application-test.yml
@@ -13,3 +13,10 @@
social:
  enabled: true
  domain: http://127.0.0.1:1888
# oauth2 配置信息
oauth2:
  base:
    authorizeUrl: http://192.168.1.50:1888/api/oauth/authorize
    loginPage: http://192.168.1.50:1888/#/login
    loginProcessingUrl: /oauth/form