mirror of
				https://gitee.com/hhyykk/ipms-sjy.git
				synced 2025-10-31 10:18:42 +08:00 
			
		
		
		
	⬆️
This commit is contained in:
		| @@ -10,8 +10,8 @@ import org.springframework.web.bind.annotation.RequestMapping; | ||||
| import org.springframework.web.bind.annotation.RequestParam; | ||||
| import org.springframework.web.bind.annotation.RestController; | ||||
|  | ||||
| import javax.annotation.Resource; | ||||
| import javax.servlet.http.HttpServletRequest; | ||||
| import jakarta.annotation.Resource; | ||||
| import jakarta.servlet.http.HttpServletRequest; | ||||
|  | ||||
| @RestController | ||||
| @RequestMapping("/auth") | ||||
|   | ||||
| @@ -6,7 +6,7 @@ import cn.iocoder.yudao.ssodemo.client.dto.user.UserInfoRespDTO; | ||||
| import cn.iocoder.yudao.ssodemo.client.dto.user.UserUpdateReqDTO; | ||||
| import org.springframework.web.bind.annotation.*; | ||||
|  | ||||
| import javax.annotation.Resource; | ||||
| import jakarta.annotation.Resource; | ||||
|  | ||||
| @RestController | ||||
| @RequestMapping("/user") | ||||
|   | ||||
| @@ -5,13 +5,15 @@ import cn.iocoder.yudao.ssodemo.framework.core.handler.AccessDeniedHandlerImpl; | ||||
| import org.springframework.context.annotation.Bean; | ||||
| import org.springframework.context.annotation.Configuration; | ||||
| import org.springframework.http.HttpMethod; | ||||
| import org.springframework.security.config.Customizer; | ||||
| import org.springframework.security.config.annotation.web.builders.HttpSecurity; | ||||
| import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; | ||||
| import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer; | ||||
| import org.springframework.security.web.AuthenticationEntryPoint; | ||||
| import org.springframework.security.web.SecurityFilterChain; | ||||
| import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter; | ||||
|  | ||||
| import javax.annotation.Resource; | ||||
| import jakarta.annotation.Resource; | ||||
|  | ||||
| @Configuration(proxyBeanMethods = false) | ||||
| @EnableWebSecurity | ||||
| @@ -28,21 +30,25 @@ public class SecurityConfiguration{ | ||||
|     @Bean | ||||
|     protected SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { | ||||
|         // 设置 URL 安全权限 | ||||
|         httpSecurity.csrf().disable() // 禁用 CSRF 保护 | ||||
|                 .authorizeRequests() | ||||
|                 // 1. 静态资源,可匿名访问 | ||||
|                 .antMatchers(HttpMethod.GET, "/*.html", "/**/*.html", "/**/*.css", "/**/*.js").permitAll() | ||||
|                 // 2. 登录相关的接口,可匿名访问 | ||||
|                 .antMatchers("/auth/login-by-code").permitAll() | ||||
|                 .antMatchers("/auth/refresh-token").permitAll() | ||||
|                 .antMatchers("/auth/logout").permitAll() | ||||
|                 // last. 兜底规则,必须认证 | ||||
|                 .and().authorizeRequests() | ||||
|                 .anyRequest().authenticated(); | ||||
|         httpSecurity | ||||
|                 // 开启跨域 | ||||
|                 .cors(Customizer.withDefaults()) | ||||
|                 // CSRF 禁用,因为不使用 Session | ||||
|                 .csrf(AbstractHttpConfigurer::disable) | ||||
|                 // 一堆自定义的 Spring Security 处理器 | ||||
|                 .exceptionHandling(c -> c.authenticationEntryPoint(authenticationEntryPoint) | ||||
|                         .accessDeniedHandler(accessDeniedHandler)); | ||||
|  | ||||
|         // 设置处理器 | ||||
|         httpSecurity.exceptionHandling().accessDeniedHandler(accessDeniedHandler) | ||||
|                 .authenticationEntryPoint(authenticationEntryPoint); | ||||
|         // 设置每个请求的权限 | ||||
|         httpSecurity.authorizeHttpRequests(c -> c | ||||
|                         // 1. 静态资源,可匿名访问 | ||||
|                         .requestMatchers(HttpMethod.GET, "/*.html", "/*.html", "/*.css", "/*.js").permitAll() | ||||
|                         // 2. 登录相关的接口,可匿名访问 | ||||
|                         .requestMatchers("/auth/login-by-code").permitAll() | ||||
|                         .requestMatchers("/auth/refresh-token").permitAll() | ||||
|                         .requestMatchers("/auth/logout").permitAll()) | ||||
|                 // 3. 兜底规则,必须认证 | ||||
|                 .authorizeHttpRequests(c -> c.anyRequest().authenticated()); | ||||
|  | ||||
|         // 添加 Token Filter | ||||
|         httpSecurity.addFilterBefore(tokenAuthenticationFilter, UsernamePasswordAuthenticationFilter.class); | ||||
|   | ||||
| @@ -9,11 +9,11 @@ import org.springframework.stereotype.Component; | ||||
| import org.springframework.util.StringUtils; | ||||
| import org.springframework.web.filter.OncePerRequestFilter; | ||||
|  | ||||
| import javax.annotation.Resource; | ||||
| import javax.servlet.FilterChain; | ||||
| import javax.servlet.ServletException; | ||||
| import javax.servlet.http.HttpServletRequest; | ||||
| import javax.servlet.http.HttpServletResponse; | ||||
| import jakarta.annotation.Resource; | ||||
| import jakarta.servlet.FilterChain; | ||||
| import jakarta.servlet.ServletException; | ||||
| import jakarta.servlet.http.HttpServletRequest; | ||||
| import jakarta.servlet.http.HttpServletResponse; | ||||
| import java.io.IOException; | ||||
|  | ||||
| /** | ||||
|   | ||||
| @@ -10,10 +10,10 @@ import org.springframework.security.web.access.AccessDeniedHandler; | ||||
| import org.springframework.security.web.access.ExceptionTranslationFilter; | ||||
| import org.springframework.stereotype.Component; | ||||
|  | ||||
| import javax.servlet.FilterChain; | ||||
| import javax.servlet.ServletException; | ||||
| import javax.servlet.http.HttpServletRequest; | ||||
| import javax.servlet.http.HttpServletResponse; | ||||
| import jakarta.servlet.FilterChain; | ||||
| import jakarta.servlet.ServletException; | ||||
| import jakarta.servlet.http.HttpServletRequest; | ||||
| import jakarta.servlet.http.HttpServletResponse; | ||||
| import java.io.IOException; | ||||
|  | ||||
| /** | ||||
|   | ||||
| @@ -9,9 +9,9 @@ import org.springframework.security.web.AuthenticationEntryPoint; | ||||
| import org.springframework.security.web.access.ExceptionTranslationFilter; | ||||
| import org.springframework.stereotype.Component; | ||||
|  | ||||
| import javax.servlet.FilterChain; | ||||
| import javax.servlet.http.HttpServletRequest; | ||||
| import javax.servlet.http.HttpServletResponse; | ||||
| import jakarta.servlet.FilterChain; | ||||
| import jakarta.servlet.http.HttpServletRequest; | ||||
| import jakarta.servlet.http.HttpServletResponse; | ||||
|  | ||||
| /** | ||||
|  * 访问一个需要认证的 URL 资源,但是此时自己尚未认证(登录)的情况下,返回 {@link GlobalErrorCodeConstants#UNAUTHORIZED} 错误码,从而使前端重定向到登录页 | ||||
|   | ||||
| @@ -9,7 +9,7 @@ import org.springframework.security.core.context.SecurityContextHolder; | ||||
| import org.springframework.security.web.authentication.WebAuthenticationDetailsSource; | ||||
| import org.springframework.util.StringUtils; | ||||
|  | ||||
| import javax.servlet.http.HttpServletRequest; | ||||
| import jakarta.servlet.http.HttpServletRequest; | ||||
| import java.util.Collections; | ||||
|  | ||||
| /** | ||||
|   | ||||
| @@ -1,10 +1,11 @@ | ||||
| package cn.iocoder.yudao.ssodemo.framework.core.util; | ||||
|  | ||||
| import cn.hutool.extra.servlet.JakartaServletUtil; | ||||
| import cn.hutool.extra.servlet.ServletUtil; | ||||
| import cn.hutool.json.JSONUtil; | ||||
| import org.springframework.http.MediaType; | ||||
|  | ||||
| import javax.servlet.http.HttpServletResponse; | ||||
| import jakarta.servlet.http.HttpServletResponse; | ||||
|  | ||||
| /** | ||||
|  * 客户端工具类 | ||||
| @@ -22,11 +23,11 @@ public class ServletUtils { | ||||
|     @SuppressWarnings("deprecation") // 必须使用 APPLICATION_JSON_UTF8_VALUE,否则会乱码 | ||||
|     public static void writeJSON(HttpServletResponse response, Object object) { | ||||
|         String content = JSONUtil.toJsonStr(object); | ||||
|         ServletUtil.write(response, content, MediaType.APPLICATION_JSON_UTF8_VALUE); | ||||
|         JakartaServletUtil.write(response, content, MediaType.APPLICATION_JSON_UTF8_VALUE); | ||||
|     } | ||||
|  | ||||
|     public static void write(HttpServletResponse response, String text, String contentType) { | ||||
|         ServletUtil.write(response, text, contentType); | ||||
|         JakartaServletUtil.write(response, text, contentType); | ||||
|     } | ||||
|  | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 YunaiV
					YunaiV