1.SpringSecurity四:Springboot集成SpringSecurity
2.跨域问题的产生以及后端解决方案
3.跨域问题?别担心!Spring Boot的5种奇巧*技解救你
4.SpringBoot实现前后端分离跨域解决方案
5.Springboot2(5)WebMvcConfigurer讲解
6.SpringBoot--WebMvcConfigurer详解
SpringSecurity四:Springboot集成SpringSecurity
Spring Security集成Spring Boot步骤详解
要使Spring Boot项目集成Spring Security,可以按照以下步骤进行操作,以简化流程和提高代码的可读性。
1. 创建Maven工程Springboot_security
在Maven工程中添加以下依赖以支持Spring Boot、Spring Security以及相关组件。生产线配方管理源码
在pom.xml文件中加入:
org.springframework.boot
spring-boot-starter-parent
2.0.6.RELEASE
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-security
javax.servlet
javax.servlet-api
provided
jstl
jstl
org.springframework.boot
spring-boot-starter-tomcat
org.apache.tomcat.embed
tomcat-embed-jasper
org.projectlombok
lombok
1..0
2. 添加Spring Boot配置文件(application.properties)
在resources目录下创建application.properties文件,配置服务器端口等信息:
server.port=
3. 创建Spring Boot启动类
编写启动类securityApplication,注解为@SpringBootApplication,并包含main方法。
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class securityApplication {
public static void main(String[] args) {
SpringApplication.run(securityApplication.class, args);
}
}
4. 创建Spring MVC配置类
编写配置类WebConfig,实现WebMvcConfigurer接口,添加视图控制器路由:
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void addViewControllers(ViewControllerRegistry registry) {
registry.addViewController("/").setViewName("redirect:/login");
}
}
5. 配置视图解析器
在application.properties中配置视图解析器的docker源码剖析前缀和后缀:
spring.mvc.view.prefix=/WEB-INF/views/
spring.mvc.view.suffix=.jsp
6. 创建Spring Security配置文件
编写WebSecurityConfig类,实现WebSecurityConfigurerAdapter接口,配置用户信息服务、密码编码器以及安全拦截规则:
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
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.configuration.WebSecurityConfigurerAdapter;
import org.springframework.security.crypto.password.NoOpPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.security.web.access.AccessDeniedHandler;
import javax.servlet./forum--1.html
这里可以通过实现WebMvcConfigurer接口中的addCorsMappings()方法来实现跨域。
@ConfigurationpublicclassWebConfigimplementsWebMvcConfigurer{ /***跨域支持*@paramregistry*/@OverridepublicvoidaddCorsMappings(CorsRegistryregistry){ registry.addMapping("/**").allowedOrigins("*").allowCredentials(true).allowedMethods("GET","POST","DELETE","PUT").allowedHeaders(*).maxAge(*);}}addMapping:配置可以被跨域的路径,可以任意配置,可以具体到直接请求路径。allowedOrigins:允许所有的请求域名访问我们的跨域资源,可以固定单条或者多条内容,如:"www.cx.cn",只有百度可以访问我们的跨域资源。allowCredentials:响应头表示是否可以将对请求的响应暴露给页面。返回true则可以,小米+抢购+源码其他值均不可以allowedMethods:允许输入参数的请求方法访问该跨域资源服务器,如:POST、GET、PUT、OPTIONS、DELETE等。allowedHeaders:允许所有的请求header访问,可以自定义设置任意请求头信息,如:"X-YAUTH-TOKEN"maxAge:配置客户端缓存预检请求的响应的时间(以秒为单位)。默认设置为秒(分钟)。
方法三:Nginx配置解决跨域问题如果我们在项目中使用了Nginx,可以在Nginx中添加以下的pms来源码配置来解决跨域
location/{ add_headerAccess-Control-Allow-Origin*;add_headerAccess-Control-Allow-HeadersX-Requested-With;add_headerAccess-Control-Allow-MethodsGET,POST,PUT,DELETE,OPTIONS;if($request_method='OPTIONS'){ return;}}作者:程序媛妹子Springboot2(5)WebMvcConfigurer讲解
Spring Boot 2 WebMvcConfigurer 实现详解
请求与视图映射
通过 `ViewController` 实现将请求转至特定视图。例如:通过 `@Override` 和 `addViewControllers` 方法配置视图控制器,让访问特定路径时自动返回指定的视图页面。例如访问 `.0.0.1:/login` 时,直接返回 `login.html` 页面。静态资源映射
使用 `ResourceHandlers` 配置静态资源映射,如、JS、CSS 等。通过 `addResourceHandlers` 方法指定资源的映射路径和存储位置,如返回 `resources/web/home.html` 页面。注意静态资源存放于 WEB-INF 目录下。消息内容转换
配置 `MessageConverter` 实现将 JSON 实体对象转换为 JSON 字符串返回。户外网源码使用 `FastJson` 作为转换器,实现返回实体类数据的同时,能进行数据的重写和格式化。通过自定义 `FastJsonHttpMessageConverter` 类,设置转换规则,如日期格式、过滤 null 值等。CORS 跨域请求配置
Spring Boot 集成了 CORS 支持,简化了前后端分离的开发。通过 `addCorsMappings` 方法配置 CORS 属性,如允许的请求方法、请求头等。实现如访问 `http://.0.0.1:/web/cors.html` 时,不报跨域异常。拦截器配置
在 Spring Boot 中使用 `WebMvcConfigurer` 的 `addInterceptors` 方法配置拦截器,实现请求前、后以及完成后的处理逻辑。通过实现 `HandlerInterceptor` 接口,自定义拦截器逻辑,如记录日志、权限验证等。配置拦截规则,如 `addPathPatterns` 方法定义拦截路径,`excludePathPatterns` 方法排除不拦截的路径。SpringBoot--WebMvcConfigurer详解
WebMvcConfigurer配置类在Spring框架中提供了JavaBean方式实现针对框架的个性化定制,简化了传统xml配置文件的繁琐。配置类需实现WebMvcConfigurer接口,Spring Boot 1.5版本以前通过重写WebMvcConfigurerAdapter的方法来添加自定义拦截器、消息转换器等。Spring Boot 2.0以后推荐直接实现WebMvcConfigurer或继承WebMvcConfigurationSupport。 常用方法包括:addInterceptors: 添加拦截器
addViewControllers: 自定义页面跳转,简化SpringMVC中访问页面的代码。
addResourceHandlers: 静态资源映射,允许自定义静态资源目录,方便管理和访问。
configureDefaultServletHandling: 配置默认静态资源处理器,解决静态资源访问问题。
configureViewResolvers: 配置视图解析器,自定义视图解析逻辑。
configureContentNegotiation: 配置内容裁决参数,解决数据格式协商问题。
addCorsMappings: 处理跨域问题,允许特定域名访问。
configureMessageConverters: 配置信息转换器,处理请求和响应的数据格式转换。
在实现WebMvcConfigurer接口时,`addResourceHandlers`方法用于配置静态资源映射路径,例如将`file/static/`目录下的资源映射到项目根目录`E:\\springboot\\`下,允许通过URL直接访问。若使用`WebMvcConfigurationSupport`类,需确保重写了`addResourceHandlers`方法。此外,`addResourceHandler`方法中路径配置需完整,即`file/`和`static/`均需明确指定。 `configureDefaultServletHandling`方法则用于注册默认静态资源处理器,如`DefaultServletHttpRequestHandler`,以处理根目录下的静态资源请求,解决由于DispatcherServlet配置映射路径导致的静态资源无法访问问题。 通过`configureViewResolvers`方法可以配置视图解析器,自定义视图解析逻辑,灵活管理视图文件路径和加载方式。 其他方法如`configureContentNegotiation`用于配置内容协商参数,`addCorsMappings`处理跨域访问问题,`configureMessageConverters`配置信息转换器,实现请求和响应的数据格式转换。 实现WebMvcConfigurer接口或继承WebMvcConfigurationSupport类,可以灵活定制Spring MVC框架的行为,简化配置,提高应用的可维护性和扩展性。