From 4daec329f36cc9d86911c08b8ec8e00270792189 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期五, 19 十一月 2021 15:08:51 +0800
Subject: [PATCH] 自动化代码中的service优化

---
 src/main/resources/code/service/app/src/main/java/com/ks/app/config/WebSecurityConfig.java |   23 ++++++++++++++++++++++-
 1 files changed, 22 insertions(+), 1 deletions(-)

diff --git a/src/main/resources/code/service/app/src/main/java/com/ks/app/config/WebSecurityConfig.java b/src/main/resources/code/service/app/src/main/java/com/ks/app/config/WebSecurityConfig.java
index 8b7b314..4e28295 100644
--- a/src/main/resources/code/service/app/src/main/java/com/ks/app/config/WebSecurityConfig.java
+++ b/src/main/resources/code/service/app/src/main/java/com/ks/app/config/WebSecurityConfig.java
@@ -10,6 +10,7 @@
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.context.annotation.Bean;
+import org.springframework.http.HttpStatus;
 import org.springframework.security.authentication.BadCredentialsException;
 import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
 import org.springframework.security.authentication.dao.DaoAuthenticationProvider;
@@ -23,11 +24,13 @@
 import org.springframework.security.core.userdetails.UserDetailsService;
 import org.springframework.security.core.userdetails.UsernameNotFoundException;
 import org.springframework.security.crypto.password.PasswordEncoder;
+import org.springframework.security.web.AuthenticationEntryPoint;
 import org.springframework.security.web.authentication.AuthenticationFailureHandler;
 import org.springframework.security.web.authentication.AuthenticationSuccessHandler;
 import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter;
 import org.springframework.security.web.authentication.logout.LogoutSuccessHandler;
 import org.springframework.web.filter.OncePerRequestFilter;
+import org.yeshi.utils.JsonUtil;
 import org.yeshi.utils.StringUtil;
 
 import javax.annotation.Resource;
@@ -170,11 +173,13 @@
             @Override
             public void onLogoutSuccess(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Authentication authentication) throws IOException, ServletException {
                 logger.info("onLogoutSuccess");
+                httpServletResponse.getWriter().print(JsonUtil.loadTrueResult(""));
             }
         })
                 .and()
                 .csrf().disable()
-                .rememberMe().userDetailsService(new MyUserDetailsService());
+                .rememberMe().userDetailsService(new MyUserDetailsService())
+                .and().exceptionHandling().authenticationEntryPoint(new CustomAuthenticationEntryPoint());
         http.addFilterBefore(new VerificationCodeFilter(), UsernamePasswordAuthenticationFilter.class);
     }
 
@@ -235,4 +240,20 @@
         }
     }
 
+
+    //鑷畾涔夋湭鎺堟潈杩斿洖
+    class CustomAuthenticationEntryPoint implements AuthenticationEntryPoint {
+        @Override
+        public void commence(HttpServletRequest request, HttpServletResponse response,
+                             AuthenticationException authException) throws IOException, ServletException {
+            String url = request.getRequestURI().toString();
+            if (url.contains("/admin/api/")) {
+                response.setStatus(HttpStatus.UNAUTHORIZED.value());
+            } else {
+                response.sendRedirect("/login.html");
+            }
+        }
+    }
+
+
 }

--
Gitblit v1.8.0