idea


spring-security

Spring Security provides comprehensive support for authentication, authorization, and protection against common exploits. It also provides integration with other libraries to simplify its usage.

安全访问控制

FilterChain链

认证器、授权器

认证

授权

<!--pom.xml-->
<dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-config</artifactId>
            <version>${spring.security.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-core</artifactId>
            <version>${spring.security.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-web</artifactId>
            <version>${spring.security.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-taglibs</artifactId>
            <version>${spring.security.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.security.oauth</groupId>
            <artifactId>spring-security-oauth2</artifactId>
            <version>${spring.security.oauth2.version}</version>
        </dependency>

web.xml中实现spring-security过滤器,做资源权限的拦截和验证

配置spring-security.xml文件,并且需要引入

Spring

@RequestParam:绑定单个请求数据,可以是URL中的数据,表单提交的数据或上传的文件;

@PathVariable:绑定URL模板变量值;

@ModelAttribute:绑定数据到Model;

中文乱码

1.web.xml中加入如下

<filter>

        <filter-name>CharacterEncodingFilter</filter-name>

        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>utf-8</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>CharacterEncodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

2.修改server.xml

   <Context URIEncoding="UTF-8" docBase="coop-sale" path="/" reloadable="true" source="org.eclipse.jst.jee.server:coop-sale"/></Host>

单点登录

单点登录(Single Sign On,SSO)在多个应用系统中,用户只需一次登录,各个系统即可感知该用户已经登录。

  • 单系统登录

HTTP是无状态的协议,这意味着服务器无法确认用户的信息。于是,W3C提出给每一个用户发一个通信证,无论谁访问的时候都需要携带通行证,这样服务器就可以从通行证上确认用户的信息,这个通行证就是Cookie。Session

  • 多系统登录

    单系统登录功能主要是用Session保存用户信息来实现的,而1.多个系统之间的Session是不共享的;那么如何解决系统之间Session不共享的问题:通过把Session数据放在Redis中;2.Cookie是不能跨域的

    同域单点登录/不同于单点登录

JWT(JSON Web Token):

  • 授权:这是最常见的使用场景,解决单点登录问题。因为JWT使用起来轻便,开销小,服务端不用记录用户状态信息(无状态),所以使用比较广泛;

  • 信息交换:JWT是在各个服务之间安全传输信息的好方法。因为JWT可以签名,例如,使用公钥/私钥对儿 - 可以确定请求方是合法的。此外,由于使用标头和有效负载计算签名,还可以验证内容是否未被篡改。

如何打jar包

File->Project Structure->左侧选中Artifacts,然后点击右侧的+号,最后选择JAR->From modules with dependencies (设置main class选择自己要打包的类,没有就不需要设置),点击OK->删除其他依赖包,只把想要的打成jar包就可以了,->点击apply->ok->点击build进行编译,会自动打成jar包->到项目下的classes\artifacts\xxx_jar目录下找到刚打包好的jar包。


Manba_girl: Mamba_girl
Reprint policy: All articles in this blog are used except for special statements CC BY 4.0 reprint polocy. If reproduced, please indicate source Mamba_girl !
  目录