Spring Security 学习总结(2) 持续更新中

从一个最简单的Spring Security Java Configuration 看起

@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
    @Autowired
    public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
        auth
            .inMemoryAuthentication()
                .withUser("user").password("password").roles("USER");
    }
}

configGlobal 这个名字不重要,重要的是在一个注解了 @EnableWebSecurity 或@EnableWebMvcSecurity或

@EnableGlobalMethodSecurity 或 @EnableGlobalAuthentication 的类中配置AuthenticationManagerBuilder。

看起来这段代码没有做很多配置,实际上做了很多:

  • 要求对每个url的访问都需要认证
  • 产生一个login 表单
  • 允许用户user,密码password 以USER的身份登录
  • 允许用户登出
  • 阻止CSRF 攻击
  • 集成Security Header(HTTP Strict Transport Security、X_Content-Type-Options、Cache-Control、X-XSS-Protection、X-Frame-Options )
  • 与Servlet API 的方法集成(getRemoteUser()、getUserPrincipal()等等)

谈一谈HttpSecurity

SecurityConfig 包含了怎么对user进行认证。但是Spring Security 怎么知道我们需要对所有的用户进行认证呢?Spring Security 怎么知道我们需要支持基于表格的认证呢?

答案在于Spring Security 的WebSecurityConfigurerAdapter 提供了一默认的配置方法:configure(HttpSecurity http)

protected void configure(HttpSecurity http) throws Exception {
    http
        .authorizeRequests()
            .anyRequest().authenticated()
            .and()
        .formLogin()
            .and()
        .httpBasic();
}
时间: 2024-10-03 22:21:25

Spring Security 学习总结(2) 持续更新中的相关文章

一些好的技术类博客和学习网站(持续更新中)

简明现代魔法 http://www.nowamagic.net/ 阮一峰http://www.ruanyifeng.com/blog/ 廖雪峰http://www.liaoxuefeng.com/ 鸟哥的Linux私房菜 http://vbird.dic.ksu.edu.tw/ http://iamsujie.com/ http://www.cnblogs.com/duguguiyu http://blog.csdn.net/longshanks http://blog.csdn.net/pro

痞子衡嵌入式:史上最强i.MX RT学习资源汇总(持续更新中...)

大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是i.MX RT学习资源. 类别 资源 简介 官方汇总 i.MXRT产品主页 恩智浦官方i.MXRT产品主页,最权威的资料都在这里,参考手册/数据手册,官方EVK板设计文件,各种应用笔记,各种参考设计方案.培训视频.软件SDK开发包,官方IDE/CFG工具,第三方软件支持等应有尽有,如果这上面文档你都能全部仔细看一遍,软件都能下载用起来,不用怀疑,你就是资深专家了. 其中痞子衡特别推荐你把所有应用笔记都看一遍,这些笔记凝结了所有恩智浦

Asp.Net Web API 2 官网菜鸟学习系列导航[持续更新中]

前言 本来一直参见于微软官网进行学习的, 官网网址http://www.asp.net/web-api.出于自己想锻炼一下学习阅读英文文章的目的,又可以学习下微软新发布的技术,其实也很久了,但自己菜鸟一枚,对自己来说都是新技术了.鉴于以上两个原因,本人打算借助google翻译和有道词典,来翻译学习这个系列,并通过博客园来记录自己的翻译学习过程.由于自己阅读水平的确太菜,在借助工具的情况下,有时候搞出来的也是蹩脚的语句,自己读着都难受,尤其是到了Web API路由的那两篇,所以自己想着是不是有别人

Javascript,jQuery,ajax学习笔记。持续更新中。[荐]

欢迎大家关注我的博客,我的博客是在平常学习看书中和总结而撰写的,欢迎大家和我交流,不足之处还很多,希望大家和我交流. 一:javascript基础系列(已完结) 二:javascript基础系列之DOM(已完结) 三:jQuery系列文章(未完结) 四:AJAX(未完结) 五:JavaScript权威指南第6版中文版   一:javascript基础系列: Javascript基础系列之(一)JavaScript语法 Javascript基础系列之(二)变量 Javascript基础系列之(三)

Oracle 9i & 10g编程艺术-深入数据库体系结构-学习笔记(持续更新中)

--20170322 --1.0 --更新表的统计信息begin dbms_stats.set_table_stats(user,'EMP',numrows => 10000);end; begin dbms_stats.set_table_stats(user,'DEPT',numrows => 10000);end; --重新查看表的统计信息select t.table_name,t.num_rows,t.blocks from user_tables t where t.table_na

oracle学习 一 (持续更新中)

首先你需要创建一个表空间,然后,再创建一个用户名,用户名要给他指定一个表空间,并且给这个用户赋予权限, DBA: 拥有全部特权,是系统最高权限,只有DBA才可以创建数据库结构. RESOURCE:拥有Resource权限的用户只可以创建实体,不可以创建数据库结构. CONNECT:拥有Connect权限的用户只可以登录Oracle,不可以创建实体,不可以创建数据库结构. 对于普通用户:授予connect, resource权限.对于DBA管理用户:授予connect,resource, dba权

使用Spring 和 JDBC 来操作数据 (持续更新中)

说明,使用Spring4, 采用 Java Configuration. <一> 配置数据源 之五种方式 1. 使用 JNDI 的数据源(jndi data source) 代码如下: @Bean public JndiObjectFactoryBean dataSource() {     JndiObjectFactoryBean jndiObjectFB = new JndiObjectFactoryBean();     jndiObjectFB.setJndiName("j

HTML5学习笔记(持续更新中....)

其实平时的工作中,不知不觉我们应用了很多HTML5,但当正儿八经问起来你对HTML5了解多少,很多时候都有点懵. 做个简单的HTML5总结.包括简介.要学的知识点.凌乱的知识点 HMTL5简介 定义:html的新版本,2014年10月由W3C完成标准制定. 设计目的:在移动设备上支持多媒体. 特点:简单易学. 要学习的知识点 canvas绘画元素 可媒介回放的video和audio元素 支持离线存储 新标签:header.nav.section.article.footer 新表单控件:cale

oracle学习 三(持续更新中)

关于ora 01219问题的解决 之前学习oracle的时候练习去建立表空间,建了很多之后手动删除了,之后再使用自己创建的用户名登陆数据库就会造成数据库 ORA-01031: ORACLE initialization or shutdown in progress 这个错误,查了多方的资料之后,发现你可能需要使用DOS去真正的删掉那几个表空间,这样才能继续使用你的用户名和密码登陆 方法如下: 1. 运行输入:sqlplus /nolog 2. 以sysdba的角色登录:connect sys/