jjzjj

java - Shiro:处理注解抛出的异常

我正在使用Shiro注释来检查授权,如下所示:@RequiresPermissions("addresses:list")publicModelAndViewgetCarrierListPage(){returnnewModelAndView("addressList","viewData",viewData);}我的问题是:如果用户没有注释要求的权限,则会抛出异常。如果出现异常,我宁愿将用户重定向到不同的URL。我该怎么做?这是我的shiro过滤器配置: 最佳答案 看起来您正在使用Spring。我在SpringMVC中通过在Con

java - 配置 Shiro 以允许匿名访问资源文件夹(JS、CSS 等)

我在配置ApacheShiro以禁用对除/js和/resources之外的所有页面的匿名访问时遇到问题,因为这会在用户登录之前破坏站点设计和布局。我当前的shiro-context.xml文件包含以下部分:/**=authc/js/**=anon/resources/**=anon这将需要对所有页面进行身份验证并将用户重定向到/login页面,但正如我之前所说,它将中断对资源文件的访问。就好像没有拿起指示它允许匿名访问的第2和第3行。我做错了什么吗?我是否应该在所有安全页面的路径前加上/secure/之类的前缀,并允许匿名访问该文件夹之上的所有内容? 最佳答

java - Apache Shiro 和新手 Java 安全

我对Java的安全模型一无所知,包括XML配置、策略设置、任何安全框架组件、工具(如keystore等)以及介于两者之间的一切。虽然我知道卷起袖子深入学习Java安全性最终将成为必不可少的,但我想知道使用ApacheShiro之类的东西是否有助于稍微简化过渡。因此,我对此有一些担忧。本质上,Shiro是一个用于在Java应用程序(尤其是Web应用程序)中实现安全性的“交key、包罗万象的包装器”。意思是,是否可以用他们的项目配置Shiro并从本质上调整它来执行所有相同的配置、策略设置等,如果没有它,人们将不得不“手动”(零碎地)执行所有相同的配置、策略设置等?如果不是,Shiro有什么

java - 如何在 Java 中实现行级安全性?

我目前正在评估身份验证/授权框架。ApacheShiro似乎非常好,但我缺少行级安全功能。例如数据库中可能有特殊的行,这些行只应由具有特殊权限的用户可见和访问。为避免不必要的往返,我们目前修改了SQL查询以与我们的授权数据连接以仅获取当前用户的可见行。但这个概念对我来说并不“正确”,因为我们将业务代码与安全相关代码混合,它们应该是正交的并且彼此独立。有哪些可用/可能的解决方案?如何实现行级安全(尤其是与jpa结合使用)?更新:目标数据库多为Oracle10g/11g-但如果没有大的缺点,数据库独立的解决方案将是首选 最佳答案 行级安

java - Shiro:remember me 是如何运作的?

我对Shiro的“记住我”功能有几个问题:为什么Shiro在每次登录时为同一个帐户生成不同的“记住我”token值?如果我使用默认的CipherKey,黑客是否能够为任何帐户生成“记住我”token?如何控制“记住我”的持续时间?按Cookie年龄?因此,如果客户端cookie永不过期,那么“记住我”cookie将永远有效? 最佳答案 Shiro的默认“记住我”功能非常有问题,原因正是您在此处找到的。这是一个很好的问题。当我开始深入研究它们的实现时,我发现了同样的问题。因为每次都使用随机IV“记住我”cookie仅包含“主体”,即您

java - 如何从数据库中储存和使用 shiro 盐

我在申请中使用shiro进行身份验证。我使用加盐的散列密码,并将它们存储在我的数据库中,如下所示:privateUsercreateUserWithHashedPassword(StringinName,StringinFirstName,StringinLastName,StringinPassword){ByteSourcesalt=randomNumberGenerator.nextBytes(32);byte[]byteTabSalt=salt.getBytes();StringstrSalt=byteArrayToHexString(byteTabSalt);Stringha

java - 如何在 Grails 或 Java 应用程序中轻松实现 "who is online"?

我正在用grails构建一个社区网站(使用ApacheShiro作为安全和身份验证系统),我想实现“谁在线?”的功能。此网址http://cksource.com/forums/viewonline.php(如果您无权访问此网址,请参阅下面的快照)给出了我想要实现的目标的示例。我怎样才能以最简单的方式做到这一点?Grails或Java中是否有任何现有解决方案?谢谢。快照:SnapshotofWhoisonlinepagehttp://www.freeimagehosting.net/uploads/th.2de8468a86.png或在这里查看:http://www.freeimage

java - 我怎样才能在应用程序的任何部分从 shiro 框架中获取 cacheManager

如何在我的应用程序的任何部分获取对Shiro框架中的cacheManager对象的引用?例如,我想删除在删除用户或更新其权限期间缓存的旧用户数据。现在我正在按照以下方式处理它publicvoidcleanUserCache(finalStringuserName){finalEmbeddedCacheManagerembeddedCacheManager=securityRealmsProducer.getEmbeddedCacheManger();finalCacheauthenticationCache=embeddedCacheManager.getCache("JPA-Auth

java - 如何使用数据库对 Java 代码中的用户进行身份验证

我想将ApacheShiro与数据库身份验证结合使用。但我无法更改数据库设计。我想使用我的自定义SQL命令和Java逻辑来验证用户。这可能吗?我在shiro.ini中试过这个配置:saltedJdbcRealm=com.crm.web.authentication.JdbcRealm和自定义Java类:publicclassJdbcRealmextendsAuthorizingRealm{@Resource(name="jdbc/DefaultDB")privateDataSourcedataSource;protectedstaticfinalStringDEFAULT_AUTHEN

记录一次springboot shiro对接微信小程序的过程方式,以及碰到的一些坑

一、对接前提:1.了解shiro鉴权机制:Shiro先会根据cookie的sessionId去获取用户会话的session,当用户的权限不满足时,会被拒绝并进行onAccessDenied方法。浏览器会主动存储会话的cookie,如下图所示:2.小程序机制导致出现问题:由于小程序与浏览器机制不同,小程序不会主动存储会话cookie,所以导致后台执行登陆方法:Subjectsubject=SecurityUtils.getSubject();Tokentoken=newToken(......);subject.login(token);执行此方法后,后续小程序的其他请求,无法获取到subjec