关于java:LockSupport用法和原理

93次阅读

共计 2052 个字符,预计需要花费 6 分钟才能阅读完成。

主动登录流程

用户抉择记住我登录胜利后,会在服务端生成一个 Cookie 返回到浏览器,Cookie 名字默认是remember-me, 值是 token

当用户从新拜访的时候,会先查看 remember-me 的 cookie 对 应的 token 值,如果 token 值存在则查看 token 值中的 username、序列号和 token 值是否和服务端生成的雷同,雷同则通过。并且零碎还会从新生成一个新的 token, 序列化 series 放弃不变,同时删除旧的 cookie,从新生成一个新的 cookie 保留在客户端

如果 cookie 不存在,或者 username、序列化 series 和 token 和 服务端的不一样,将从新返回到登录页面。

因为 cookie 有被盗用的可能,所以如果利用安全性比拟高,那么就不要应用 r emember-me 功 能。
散列解密计划
SpringSecurity 实 现主动登录性能非常简单
批改 login.html
咱们须要在 login.html 中增加记住我性能,html 实现如下

<!--suppress ALL-->
<!DOCTYPE html>

<html xmlns:th="http://www.thymeleaf.org" lang="en">
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>springboot 葵花宝典登录页面 </title>
    <!-- Tell the browser to be responsive to screen width -->
    <meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
<h1>springboot 葵花宝典登录页面 </h1>
<form  th:action="@{/login/form}" action="index.html" method="post">
    <span> 用户名称 </span><input type="text" name="username" /> <br>
    <span> 用户明码 </span><input type="password" name="password" /> <br>
    <div >
        <input name="code" type="text" class="form-control" placeholder="验证码">
        <img onclick="this.src='/code/image?'+Math.random()" src="/code/image" alt="验证码" />
    </div> <br>
    <span> 记住我 </span><input type="checkbox" name="remember-me" >  <br>
    <div th:if="${param.error}">
        <span th:text="${session.SPRING_SECURITY_LAST_EXCEPTION.message}" style="color:#ff0000"> 用户名或 明码谬误 </span>
    </div>
    <input type="submit" value="登陆">
</form>
</body>
</html>

cookie 个性化配置

在理论的开发过程中,咱们还能够依据需要做一些个性化的设置,如下:

.rememberMe()
    .rememberMeParameter("remember-me-new")
    .rememberMeCookieName("remember-me-cookie")

增加数据库依赖

咱们在我的项目中的 pom.xml 中增加数据库依赖

   <!--mysql 驱动 -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <!--mybatis-plus-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.5.1</version>
        </dependency>

正文完
 0