1.Set the
concurrentSessionController
in Bootstrap:
class BootStrap {
def authenticationManager
def concurrentSessionController
def init = { servletContext ->
authenticationManager.sessionController = concurrentSessionController
}
def destroy = {}
}
2. then in resources.groovy I configured the missing concurrentSessionFilter
:
import org.springframework.security.concurrent.ConcurrentSessionControllerImpl
import org.springframework.security.concurrent.ConcurrentSessionFilter
import org.springframework.security.concurrent.SessionRegistryImpl
import org.springframework.security.providers.ProviderManager
beans = {
sessionRegistry(SessionRegistryImpl)
concurrentSessionController(ConcurrentSessionControllerImpl) {
maximumSessions = 1
sessionRegistry = sessionRegistry
}
concurrentSessionFilter(ConcurrentSessionFilter) {
sessionRegistry = sessionRegistry
expiredUrl = '/login/concurrentSession'
}
}
3. and took advantage of a new feature in the 0.3 version of
the plugin, being
able to specify the FilterChainProxy filter
list as a list of strings in
SecurityConfig.groovy:
filterNames = ['concurrentSessionFilter',
'httpSessionContextIntegrationFilter',
'logoutFilter',
'authenticationProcessingFilter',
'securityContextHolderAwareRequestFilter',
'rememberMeProcessingFilter',
'anonymousProcessingFilter',
'exceptionTranslationFilter',
'filterInvocationInterceptor']
结论及其他:
1.本文引自nabble讨论:http://old.nabble.com/dealing-with-concurrent-session-in-acegi-and-grails-td18987010.html
2.另一个nabble讨论提到acegi plugin将在0.6版本纳入此功能:http://jira.codehaus.org/browse/GRAILSPLUGINS-962
分享到:
相关推荐
然而,需要注意的是,随着Spring Security的发展,Acegi已被Spring Security 3.x及更高版本所取代,虽然Grails Acegi 0.5插件仍能使用,但可能缺乏最新的安全特性与更新,因此在新项目中,推荐考虑使用Spring ...
Grails Acegi 0.1是Grails框架的一个早期版本插件,它引入了Spring Security的核心功能,使开发者能够轻松地在Grails应用中实现用户认证和授权。这个插件的主要目标是提供一个安全的环境,允许开发者在不牺牲效率的...
这个插件的发布旨在帮助开发者轻松地在Grails应用中实现用户认证和权限控制,确保应用的数据和操作安全。 在了解Grails Acegi 0.5.2之前,我们首先需要知道Grails。Grails是一个基于Groovy语言的开源Web应用框架,...
1. `AcegiGrailsPlugin.groovy`:这是Grails插件的核心文件,定义了插件的元数据、依赖关系以及如何在Grails应用中激活和配置插件。它通常包含了安装、启用和自定义插件所需的信息。 2. `application.properties`:...
总的来说,Grails Acegi 0.5.1插件是Grails框架中一个强大且灵活的安全解决方案,它的出现极大地简化了权限管理的实现过程,使得开发者能够更加专注于业务逻辑的开发,而无需过多关注底层的安全细节。通过理解和充分...
在使用Grails Acegi 0.3插件时,开发者可以利用其提供的注解和配置选项,实现用户登录、权限检查、角色分配等功能。例如,`@Secured`注解可以用来标记需要特定权限才能访问的方法,而`<security:intercept-url>`标签...
在Grails应用启动时,这个脚本会被执行,使得Acegi Security的相关组件能够正确地集成到Grails应用中,为应用的各个层面提供安全控制。 `application.properties`是Grails应用的配置文件,其中可以定义应用级别的...
通过这些文件,开发者可以了解到如何在Grails应用中集成Acegi Security,设置权限规则,创建自定义认证和授权策略,以及处理登录、注销、会话管理等常见安全问题。同时,通过查看源码和测试用例,开发者能够深入理解...
3. **配置Grails环境**:安装插件后,需要在Eclipse中配置Grails的路径,这样Eclipse才能找到Grails命令行工具。这通常在"Eclipse Preferences" -> "Grails"中设置。 4. **创建Grails项目**:现在,你可以通过...
How to use Acegi on Grails using Grails Domain class Beans to support Acegi on Grails Grails Acegi Plugin Setting up Acegi Plugin Secure your Ajax Secure your Service
Grails Pjax插件Pjax在Grails中。 Pjax类似于(turbolinks)[ ,在'A'标签,按钮和表单上工作。 参见_pjaxHeader grails templtate文件中的演示代码。 ## Pjax是什么? Pjax是一个jQuery插件,它使用ajax和pushState...
在IT行业中,Grails是一个...总之,通过以上步骤,你可以在Grails开发环境中成功安装Subclipse插件,从而利用SVN进行高效的版本控制。这对于任何Grails项目来说都是一个必不可少的工具,有助于实现代码管理的最佳实践。
在Grails中,你可以在控制器的行动(Actions)中使用闭包来处理请求逻辑。此外,Groovy的动态特性允许你在运行时添加或修改类的行为,这在快速迭代开发中非常有用。 Grails框架提供了丰富的插件系统,可以快速扩展...
你可以为用户分配角色,并在控制器或视图层使用`@Secured`注解来限制对特定方法或URL的访问。例如: ```groovy class UserController { @Secured(['ROLE_ADMIN']) def index() { ... } } ``` 此外,还可以使用...
1. 安装与配置:在Grails项目中添加插件依赖,然后通过配置文件调整编辑器的参数,如默认样式、语言设置等。 2. 使用方法:在GSP页面中引入FCKEditor,用户可以在网页上直接编辑富文本,如HTML代码,支持图片上传、...
开发者可以很方便地在Grails项目中集成这些插件来增强应用程序的能力。 Grails框架的中文入门资料较为稀缺,因而这份文档显得尤其宝贵。文档涵盖了从安装、配置、Web开发、服务层、测试、国际化、安全到插件使用等...
- 安装完成后,确保设置`GRAILS_HOME`环境变量,并将其路径添加到系统的`PATH`变量中,确保这两个变量都在同一级别(用户级或系统级)。 - 打开命令行,输入`grails`,如果显示帮助信息,表明Grails已成功安装。 ...
在Grails 4.0.4中,有几个关键知识点值得我们深入了解: 1. **Groovy语言**:Grails的核心编程语言是Groovy,这是一种动态、面向对象的JVM语言,它的语法简洁且富有表现力,与Java高度兼容,但更加灵活。Groovy的...
2. **命令行工具**:Grails提供了强大的命令行工具,可以快速生成项目结构、控制器、服务、域类等,这在文档中会有详细介绍,包括`create-app`、`generate-controller`等命令的用法。 3. **领域驱动设计(Domain-...
在 Grails 中,MVC 模式用于组织应用程序的结构。Model 负责业务逻辑和数据管理,View 负责显示用户界面,Controller 处理用户请求并协调 Model 和 View 的交互。 **GORM (Grails Object-Relational Mapping)** ...