在SpringSecurity中定义一个匿名访问权限,实现未登录用户可以访问默写页面

     <http use-expressions="false" entry-point-ref="casProcessingFilterEntryPoint">
<intercept-url pattern="/cart/**" access="IS_AUTHENTICATED_ANONYMOUSLY"/>
<intercept-url pattern="/**" access="ROLE_USER"/>
<custom-filter position="CAS_FILTER" ref="casAuthenticationFilter" />
<custom-filter ref="requestSingleLogoutFilter" before="LOGOUT_FILTER"/>
<custom-filter ref="singleLogoutFilter" before="CAS_FILTER"/>
</http>

就是在第2行添加的内容。此处的意思是所有的/cart/**目录下的都可以访问,并且用户名统一为annonymousUser

结合SpringSecurity的匿名用户未登录访问和登录访问的判断

下方代码目的是用来获取当前用户的访问用户名

1、如果已登录返回用户的登录id

2、未登录为当前用户创建一个UUID存入Cookie中并返回该Cookie的UUID

    /**
* 准备方法获取cookie中的uuid,如果cookie中没有uuid生成uuid并保存到cookie中
*/
public String getUuid(){
String uuid = CookieUtil.getCookieValue(request, "uuid","utf-8"); //从cookie中获取的uuid为null或者有具体的值
if(uuid == null || uuid.equals("")){
uuid = UUID.randomUUID().toString(); //XXXX-XXXX-XXXXXXXXX
//将生成的uuid存入cookie中
CookieUtil.setCookie(request, response, "uuid", uuid,48*60*60, "utf-8");
}
return uuid;
} public String getUserID{
String userId = SecurityContextHolder.getContext().getAuthentication().getName(); //从springSecurity获取当前用户
//判断是否登录,如果未登录,返回UUID,如果已登录返回用户登录名
if("anonymousUser".equals(userId)){
userId = getUuid(); //cookie中获取uuid作为唯一key值
}
return userId;
}

SpringSecurity匿名用户访问权限的更多相关文章

  1. Confluence 6 为站点启用匿名用户访问

    如果你希望你的站点能够被所有人看到,包括不需要登录就可以访问的用户.你必须为你的站点启用匿名用户访问权限才可以. 希望启用匿名用户访问你的站点: 在屏幕的右上角单击 控制台按钮 ,然后选择 Gener ...

  2. 004.FTP匿名用户访问

    一 匿名用户配置项 [root@imxhy~]# vi /etc/vsftpd/vsftpd.conf anonymous_enable #允许匿名用户访问 anon_upload_enable #允 ...

  3. Linux系统学习 十五、VSFTP服务—匿名用户访问(不推荐使用,不安全)

    匿名用户访问 基本配置: anonymous_enable          #允许匿名用户访问 anon_upload_enable       #允许匿名用户上传 anon_mkdir_write ...

  4. Windows安装MongoDB 4.0并赋予用户访问权限

    第一部分 Windows安装MongoDB-4.0 第一步:下载MongoDB:https://www.mongodb.com/download-center?jmp=nav#community 我目 ...

  5. [App Store Connect帮助]三、管理 App 和版本(8)编辑 App 的用户访问权限

    对于具有“App 管理”.“客户支持”.“开发者”.“营销”或“销售”职能的特定人员(均不具有“访问报告”职能),您可以限制其在 App Store Connect 帐户中对 App 的访问权限. 必 ...

  6. Linux上的ftp服务器vsftpd之配置满天飞--设置匿名用户访问(不弹出用户名密码框)以及其他用户可正常上传

    一.问题背景 没事谁折腾这鬼玩意哦...还不是因为bug. 我们的应用,用户头像是存在ftp上的.之前的ftp服务器是一台windows,我们后台服务器程序收到用户上传头像的请求时,会用一个ROOT/ ...

  7. SQLServer控制用户访问权限表

    连接地址:http://www.cnblogs.com/yxyht/archive/2013/03/22/2975880.html 一.需求 在管理数据库过程中,我们经常需要控制某个用户访问数据库的权 ...

  8. Linux 配置SFTP,配置用户访问权限

    之前我服务器是使用的Windows Server 2003,这段时间由于访问量变大我还是机智的换成Linux了,在搭建FTP的时候看到网上都是推荐vsftpd,不过我不推荐这个家伙,看官且看下文. 我 ...

  9. Confluence 6 给一个从 Jira Service Desk 的非许可证用户访问权限

    如果你正在使用 Confluence 为 Jira 服务桌面(Jira Service Desk)的知识库,你可以选择允许所有活动的用户和客户(客户是可以登录的用户,但是这些用户是没有 Conflue ...

随机推荐

  1. C# MemcacheHelper封装

    using Memcached.ClientLibrary; using System; using System.Collections.Generic; using System.Linq; us ...

  2. windows如果在IE中用超链接打开谷歌页面

    Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\openChrome] @="URL:openChrome Protocol& ...

  3. 教你玩转Git-合并冲突

    Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目.Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件.Git 与 ...

  4. Android P(9.0) userdebug版本执行adb remount失败

    [DESCRIPTION]      在android P版本上如果按照“FAQ18076 android 6.0 M userdebug版本执行adb remount失败”的做法在userdebug ...

  5. Spark 安装教程

    Spark 安装教程 本文原始地址:https://sitoi.cn/posts/45358.html 安装环境 Fedora 29 openjdk version "1.8.0_191&q ...

  6. PAT 乙级 1010.一元多项式求导 C++/Java

    设计函数求一元多项式的导数.(注:x​n​​(n为整数)的一阶导数为nx​n−1​​.) 输入格式: 以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过 1000 的整数).数字间以空格分隔. ...

  7. Exploit Kit——hacker入侵web,某iframe中将加载RIG EK登录页面,最终下载并执行Monero矿工

    RIG Exploit Kit使用PROPagate注入技术传播Monero Miner from:https://www.4hou.com/technology/12310.html 导语:Fire ...

  8. Broadcast,Scatter,Gather,Reduce,All-reduce分别是什么?

    Broadcast 看名字就很好理解了,其实就是把同一份数据分发广播给所有人,示意图如下: Scatter 不同于Broadcast, scatter可以将不同数据分发给不同的进程. Gather 这 ...

  9. datagrid 文本溢出时候 鼠标经过出现提示信息tooltip

    1只有文本溢出的单元格鼠标经过才显示提示信息 $('.datagrid-cell').mouseover(function () { if (this.offsetWidth < this.sc ...

  10. 【PHP】系统部署

    1.MySql数据库,单独创建用户和数据库 使用MySql-Front导入,避免使用Navicat导入 2.httpd-vhosts.conf配置 文件位于:D:\Xampp\apache\conf\ ...