1 Star 0 Fork 552

Leader / CS-Wiki

forked from 小牛肉 / cs-wiki 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
7-登出处理和自定义403界面.md 2.16 KB
一键复制 编辑 原始数据 按行查看 历史
小牛肉 提交于 2021-07-11 21:36 . 🥽 更新目录结构

🍎 登出处理和自定义 403 界面


1. 登出

退出登录特别的简单,这个 Spring Security 就已经帮我们实现了,只需要在 form 表单中通过 post 方式提交 /logout 请求即可,如下示例代码 index.html

<!DOCTYPE html>  
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org" xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity3">  
    <head>
        <title>Spring Security入门</title>
    </head>
    <body>
        <h1>欢迎使用Spring Security!</h1>

        <form th:action="@{/logout}" method="post">
            <input type="submit" value="退出登录"/>
        </form>

        <p>点击 <a th:href="@{/hello}">这里</a> 打个招呼吧</p>

        <p> <a th:href="@{/hello/helloAdmin}">admin page</a></p>
        <p><a th:href="@{/hello/helloUser}">user page</a></p>

    </body>
</html>

2. 自定义 403 界面

如果使用 user 的账号进行登录,然后访问 admin page 的话,会报 403 的 ErrorPage,这个很不友好,我们需要重新定义这个 403 页面。

对于 403 异常的处理有很多种方案,这里采用的是:重新定义一个 403.html 页面,将该文件放到 /templates/error,这样 Spring 就可以找到我们自己定义的 403 页面了,403.html 示例代码如下:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org"
      xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity3">
    <head>
        <title>没有权限</title>
    </head>
    <body>
        <h1 th:inline="text">抱歉!</h1>
        <p>您没有权限访问该页面 -------这是403界面.</p>
        <p><a th:href="@{/hello/helloUser}">前往普通用户界面</a></p>
        <form th:action="@{/logout}" method="post">
            <input type="submit" value="退出登录"/>
        </form>
    </body>
</html>

正确的目录结构如下:

📚 References

Java
1
https://gitee.com/mmbuy_admin/CS-Wiki.git
git@gitee.com:mmbuy_admin/CS-Wiki.git
mmbuy_admin
CS-Wiki
CS-Wiki
master

搜索帮助