先安装插件 shiro-1.1.4
然后初始化(windows环境参数要加冒号,其它环境不用)
cd myoa
grails shiro-quick-start "--prefix=myoa."
会创建或修改以下文件 先允许修改,然后再用idea的diff功能人工整合
| Environment set to development.....
> User.groovy already exists. Overwrite? [y/n] y
| Created file grails-app/domain/myoa/User.groovy
| Created file grails-app/domain/myoa/Role.groovy
| Created file grails-app/realms/myoa/DbRealm.groovy
| Created file grails-app/controllers/myoa/AuthController.groovy
| Created file grails-app/views/auth/login.gsp
> SecurityFilters.groovy already exists. Overwrite? [y/n] y
| Created file grails-app/conf/myoa/SecurityFilters.groovy
半路出家的麻烦
因为系统已经开发了一段时间,已经有一个User对象,当时用的属性名“name/password”;而shrio也会生成一个User对象,用的“username/passwordHash”。
权衡之后,重构原来的User对象动静太大,还是重构shrio生成出来的文件吧,发现倒是不难:
1. login.gsp 不需要修改,因为会有一个token对象介于gsp和User对象之间
2. AuthController 不需要修改,只需要加一句把user对象存入session的,因为我的gsp大多用到了这个对象:SessionTool.loginUser = User.findByName(authToken.username)
3. DbRealm.groovy 修改User部分的引用,其它不用改
小有点成就感
花了1天时间,基本掌握了shiro框架,控制可以依赖框架,但权限需要自己设计
花了2天时间,可以从系统自动生成所有controller、action的权限表,然后设计了UI界面方便编辑和管理。
修改密码加密算法
The default realm basically hashes the password provided in the authentication token using SHA256 and then compares the hash to the password hash stored in the user domain instance.
If the hashes are the same, the user is authenticated. Now, SHA256 has known vulnerabilities, so you may want to use something a little more secure. If that's the case, you need to do two things.
First, when you create a user (such as in BootStrap ) you need to hash the password using the alternative algorithm
new Sha512Hash("password").toHex()
Second, you need to override the credentialMatcher bean, for example by adding the following to your grails-app/conf/spring/resources.groovy file:
import org.apache.shiro.authc.credential.Sha512CredentialsMatcherbeans = {
credentialMatcher(Sha512CredentialsMatcher) {
storedCredentialsHexEncoded = true
}
…
}
- 大小: 52.4 KB
分享到:
相关推荐
Spring Shiro是将Shiro安全框架与Spring框架结合使用的一种模式。Shiro是一个强大且灵活的开源安全框架,提供了认证、授权、加密和会话管理等功能。通过与Spring框架的集成,Spring Shiro能够更好地适应Java应用的...
Shiro框架的设计理念是将安全的实现透明化,也就是说,它可以更容易地、更直观地被理解和使用。Shiro的目的是为了保护应用程序和系统,从简单的命令行应用程序到复杂的网络和企业应用程序都可以使用。 Shiro的安全...
5. 开发者API:插件提供了丰富的API供开发者在控制器和视图中使用,如检查用户权限、强制登录等。 三、Grails Shiro UI 插件的进阶应用 除了基本的功能外,Grails Shiro UI 插件还支持一些高级特性,如: 1. 国际...
Grails 3 Shiro插件用于Apache Shiro安全框架的Grails 3插件。为什么要为Grails使用另一个shiro插件? 原始插件维护已停止了一段时间: : 地位编译OK 单元测试通过已经做了什么尽管这项工作正在进行中,但已经完成了...
本文将深入探讨如何在Grails框架中集成Apache Shiro安全库,同时利用AngularJS进行前端交互,构建一个安全、高效的应用系统。首先,我们来理解一下主要涉及的技术栈。 **Grails** 是一个基于Groovy语言的全栈式Java...
在Shiro框架中,用户权限模型至关重要。它涉及到用户身份的确认(认证)以及用户可以访问哪些资源(授权)。这一模型由几个关键部分组成: 1. **LoginAccount**:用于表示用户的登录信息,最基本的包括用户名和密码...
Apache Shiro(发音为“shee-roh”,日语为“castle”)是一种功能强大且易于使用的Java安全框架,可执行身份验证,授权,加密和会话管理,可用于保护任何应用程序的安全-从命令行应用程序,移动应用程序到最大的Web...
同时,Shiro 可以与Spring、Grails等流行框架无缝集成,增强了其在实际项目中的适用性。 Apache Shiro 的社区活跃,有丰富的文档和示例,以及一群热心的开发者和用户支持。商业公司如Katasoft也提供专业的支持和...
**Apache Shiro**(发音为“shee-roh”,意为日语中的“堡垒”)是一款功能强大且易于使用的Java安全框架,旨在为各类应用提供全面的安全保障。无论是在命令行应用、移动应用还是大型网络和企业级应用中,Shiro都能...
6. **与其他框架的集成**:Shiro与Spring、Grails、Wicket等多种流行的Java框架有着良好的集成能力,使得开发者可以在现有的项目结构中无缝引入Shiro,提升应用的安全性。 #### 实践案例 假设我们有一个企业级的...
Apache-Shiro-使用手册 Apache Shiro 是一个框架,可用于身份验证和授权。本文提供了几个示例用来展示如何在 Java™ 应用程序中使用 Shiro 并给出了如何在一个 Grails web 应用程序中使用它的概述。
- **示例说明**:本文档将通过具体的示例展示如何使用Shiro进行认证与授权,包括如何定义角色(Role)和权限(Permission),并演示Shiro与Grails框架的集成。 #### 八、总结 Shiro作为一款新兴的安全框架,凭借其强大...