前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Spring Security学习(一)

Spring Security学习(一)

作者头像
allsmallpig
发布2021-02-25 10:28:49
3350
发布2021-02-25 10:28:49
举报
文章被收录于专栏:allsmallpi博客

原理

当一个请求进来时,先经过各种过滤器(通过代码配置生效),比如UserName Password AuthenticationFilter(表单登录)、BasicAuthenticationFilter(Basic登录)等

最后经过FilterSecurityInterceptor,这是Spring Security验证的最后一步,如果验证通过则正常访问服务,如果验证不通过则会抛出异常

异常由ExceptionTranslationFilter捕获,根据异常来做不同处理,比如未登录,则跳转登录页面

使用Maven

因项目spring版本为4.X,所以选择的是4.2.3.RELEASE版本

代码语言:javascript
复制
<dependency>
    <groupId>org.springframework.securitygroupId>
    <artifactId>spring-security-coreartifactId>
    <version>4.2.3.RELEASEversion>
dependency>

<dependency>
    <groupId>org.springframework.securitygroupId>
    <artifactId>spring-security-webartifactId>
    <version>4.2.3.RELEASEversion>
dependency>

<dependency>
    <groupId>org.springframework.securitygroupId>
    <artifactId>spring-security-configartifactId>
    <version>4.2.3.RELEASEversion>
dependency>

配置类Security

创建WebSecurityConfig

代码语言:javascript
复制
@Configuration
// 使用Security
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.formLogin().and().authorizeRequests().anyRequest().authenticated();
    }
}

上段代码说明访问的请求基于表单验证,并且所有请求都需要用户被认证

如果我们在应用程序的其他地方已经使用了Spring,那么我们已经有了一个 WebApplicationInitializer用来载入Spring的配置。所以我们应该使用已经存在的 ApplicationContext 注册Spring Security。

创建SecurityWebApplicationInitializer

代码语言:javascript
复制
public class SecurityWebApplicationInitializer 
        extends AbstractSecurityWebApplicationInitializer {
}

创建一个扩展 AbstractSecurityWebApplicationInitializer 的一个类, 它将会自动地加载 springSecurityFilterChain,相当于配置web.xml

代码语言:javascript
复制
public class WebAppInitializer extends
        AbstractAnnotationConfigDispatcherServletInitializer {

    @Override
    protected Class[] getRootConfigClasses() {
        return new Class[] { WebSecurityConfig.class };
    }

    // ... other overrides ...
}

现在访问网站任意地址都会提示到跳转登录了

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018/01/16 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 原理
  • 使用Maven
  • 配置类Security
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档