`
seanwon
  • 浏览: 65691 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Grails ACEGI PLUGIN 登录扩展验证码

阅读更多

安装ACEGI插件以后,按照步骤一次执行了,
grails create-auth-domains User Role Requestmap
grails generate-manager
grails generate-registration

需要在登录页面扩展验证码,如下:

首先在登录页面的Form内加入如下代码:
<input type="text" name="captcha" id="captcha" size="8"/>
                            <img src="${createLink(controller:'captcha', action:'index')}" align="absmiddle"/>


然后修改plugin->acegi 0.4.1 ->src->groovy下的org.codehaus.groovy.grails.plugins.springsecurity.GrailsAuthenticationProcessingFilter的attemptAuthentication方法如下:
String inputValidationCode = httpServletRequest.getParameter( "captcha" );
        //从Session中取出验证码
        String ssnValidationCode = (String)httpServletRequest.getSession().getAttribute( "captcha" );

        if( ssnValidationCode != null && !ssnValidationCode.equals( inputValidationCode.toUpperCase() ) ){
            //用户输入的值与看到的不一致,抛出异常
            throw new ValidationCodeException( "验证码输入错误!");
        }

并且在相同的package下创建ValidationCodeException类:
package org.codehaus.groovy.grails.plugins.springsecurity
import org.springframework.security.AuthenticationException
/**
* 验证码异常
*/
public class ValidationCodeException extends AuthenticationException {
    public ValidationCodeException(String s) {
        super(s);
    }
}


再修改projects下的contoller - LoginController的authFail方法,添加如下代码:
else if(exception instanceof ValidationCodeException) {
  msg = exception.message


grails run-app,执行可看到效果。
  • 大小: 7.9 KB
分享到:
评论

相关推荐

    grails-acegi-0.5.zip

    同时,通过扩展Grails Acegi提供的服务和控制器,可以定制化安全行为,例如自定义认证策略、实现自定义权限检查逻辑。 在Grails应用中集成Acegi 0.5插件,不仅可以提高项目的安全性,还能让开发者更专注于业务逻辑...

    grails-acegi-0.5.2.zip

    在实际使用Grails Acegi 0.5.2时,开发者可以利用其提供的安全拦截器、过滤器和标签库来实现用户登录、权限检查、会话管理等功能。例如,通过配置`@Secured`注解,可以控制哪些方法或控制器仅允许特定角色的用户访问...

    grails-acegi-0.1.zip

    2. `plugin.xml`:这是Grails插件的元数据文件,包含了插件的名称、版本、作者等信息,同时也是Grails构建系统识别和管理插件的关键文件。 3. `grails-app`目录:包含Grails应用的核心代码,如控制器(controllers...

    grails-acegi-0.4.1.zip

    通过将Acegi集成到Grails中,开发者可以利用Spring Security的丰富功能,如登录验证、角色权限分配、访问限制等,来保护他们的Grails应用。 这个插件的0.4.1版本包含了一系列关键组件,这些组件在构建安全应用时起...

    TsuyoshiYamamoto_Acegi On Grails

    What’s Acegi Security  How to use Acegi on Grails  using Grails Domain class  Beans to support Acegi ... Grails Acegi Plugin  Setting up Acegi Plugin  Secure your Ajax  Secure your Service

    grails-acegi-0.5.1.zip

    Grails Acegi 0.5.1插件,作为Grails框架的一个重要扩展,专门用于实现权限管理和认证功能,为开发者提供了一种强大的工具来确保应用程序的安全性。下面我们将详细探讨该插件的核心功能、使用方法以及其包含的文件...

    grails-acegi-0.2.zip

    《Grails Acegi 0.2插件:构建安全的Web应用》 Grails Acegi 0.2是一个针对Grails框架的安全管理插件,它基于Spring Security(原名Acegi Security)的核心功能,为Grails应用提供了强大的权限控制和身份验证机制。...

    grails-acegi-0.3.zip

    3. **plugin.xml**:这是插件的XML描述文件,提供了插件的依赖信息和扩展点,帮助Grails理解插件的功能并将其与其他组件正确地组合在一起。 4. **test**目录:包含了插件的测试代码,确保插件的功能正常工作,并且...

    grails-acegi-0.2.1.zip

    通过这些文件,开发者可以了解到如何在Grails应用中集成Acegi Security,设置权限规则,创建自定义认证和授权策略,以及处理登录、注销、会话管理等常见安全问题。同时,通过查看源码和测试用例,开发者能够深入理解...

    grails学习

    - `'org.codehaus.groovy.grails.plugin'`:插件 通过以上对 Grails 学习中遇到的问题的分析,你应该对 Grails 开发有了更深入的理解。持续学习和实践,将有助于你熟练掌握 Grails 框架,并能高效地解决实际开发中...

    grails-rest-client-builder:使用Spring的RestTemplate的REST客户端插件

    Rest Client Builder Grails插件 注意 该插件的代码已移至的 。... def resp = rest.get("http://grails.org/api/v1.0/plugin/acegi/") 响应是一个Spring 。 有一些获取JSON的便捷方法: resp.json instanceof

Global site tag (gtag.js) - Google Analytics