设为首页 加入收藏

TOP

Spring MVC + Security 4 初体验(Java配置版)(三)
2019-09-17 17:36:09 】 浏览:44
Tags:Spring MVC Security 体验 Java 配置
rdEncoder passwordEncoder() { return new BCryptPasswordEncoder(11); } }

WebAppConfig

因为采用RESTful风格,这里配置响应视图为json格式。

复制
@Configuration @EnableWebMvc @ComponentScan(basePackages = "org.xueliang.springsecuritystudy") @PropertySource({"classpath:config.properties"}) public class WebAppConfig extends WebMvcConfigurerAdapter { @Bean public RequestMappingHandlerAdapter requestMappingHandlerAdapter(@Autowired MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter, @Autowired ContentNegotiationManager mvcContentNegotiationManager) { RequestMappingHandlerAdapter requestMappingHandlerAdapter = new RequestMappingHandlerAdapter(); requestMappingHandlerAdapter.setMessageConverters(Collections.singletonList(mappingJackson2HttpMessageConverter)); requestMappingHandlerAdapter.setContentNegotiationManager(mvcContentNegotiationManager); return requestMappingHandlerAdapter; } @Bean public MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter() { return new MappingJackson2HttpMessageConverter(); } /** * 设置欢迎页 * 相当于web.xml中的 welcome-file-list > welcome-file */ @Override public void addViewControllers(ViewControllerRegistry registry) { registry.addRedirectViewController("/", "/index.html"); } }

WebAppInitializer

Spring Security 架构是完全基于标准的 Servlet 过滤器的,这里我们需要在 WebInitializer 中引入 DelegatingFilterProxy 过滤器。

复制
public class WebAppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer { @Override public void onStartup(ServletContext servletContext) throws ServletException { servletContext.addFilter("springSecurityFilterChain", new DelegatingFilterProxy("springSecurityFilterChain")).addMappingForUrlPatterns(null, false, "/api/*"); // 静态资源映射 servletContext.getServletRegistration("default").addMapping("*.html", "*.ico"); super.onStartup(servletContext); } @Override protected Class<?>[] getRootConfigClasses() { return new Class[] { WebAppConfig.class }; } @Override protected Class<?>[] getServletConfigClasses() { return null; } @Override protected String[] getServletMappings() { return new String[] { "/" }; } @Override protected Filter[] getServletFilters() { return new Filter[] { new CharacterEncodingFilter("UTF-8", true) }; } }

Source

本文使用到的项目源码已经放到 Github 上,你可以下载后运行。

首页 上一页 1 2 3 下一页 尾页 3/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇项目架构开发:异常处理及日志 下一篇项目架构开发:服务层(下)

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目