首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在grails 2.0中,如何使用shiro实现BasicHttpAuthentication?有什么很棒的例子吗?

在Grails 2.0中,可以使用Shiro来实现BasicHttpAuthentication。下面是一个示例:

  1. 首先,确保已经在Grails项目中添加了Shiro插件。可以在BuildConfig.groovy文件中添加以下依赖项:
代码语言:txt
复制
plugins {
    // 其他插件...
    compile ":shiro:1.2.1"
}
  1. 创建一个Shiro Realm类,用于验证用户凭据和授权。在src/groovy目录下创建一个新的Groovy类,例如MyShiroRealm.groovy,并添加以下内容:
代码语言:txt
复制
import org.apache.shiro.authc.*
import org.apache.shiro.realm.AuthorizingRealm
import org.apache.shiro.subject.PrincipalCollection

class MyShiroRealm extends AuthorizingRealm {

    @Override
    protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken token) throws AuthenticationException {
        // 获取用户名和密码
        String username = token.principal
        String password = new String((char[]) token.credentials)

        // 在这里进行用户名和密码的验证逻辑,例如从数据库中查询用户信息

        // 如果验证成功,返回一个AuthenticationInfo对象
        return new SimpleAuthenticationInfo(username, password, getName())
    }

    @Override
    protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) {
        // 在这里进行用户授权逻辑,例如从数据库中查询用户的角色和权限信息

        // 返回一个AuthorizationInfo对象,包含用户的角色和权限信息
        return null
    }
}
  1. 配置Shiro插件以使用自定义的Realm。在Config.groovy文件中添加以下配置:
代码语言:txt
复制
grails.plugin.shiro.realm.class = 'com.example.MyShiroRealm'
  1. 在需要进行BasicHttpAuthentication的控制器或动作上添加Shiro的注解。例如,在一个控制器的beforeInterceptor中添加@RequiresAuthentication注解:
代码语言:txt
复制
import grails.plugin.shiro.annotation.RequiresAuthentication

class MyController {

    @RequiresAuthentication
    def myAction() {
        // 在这里处理需要进行BasicHttpAuthentication的逻辑
    }
}

这样,当访问myAction动作时,Shiro会自动进行BasicHttpAuthentication的验证。

关于更多Grails和Shiro的使用示例,可以参考Grails官方文档和Shiro官方文档。

注意:以上示例仅供参考,实际使用时需要根据具体需求进行适当调整和扩展。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Shiro 入门概述

是什么 Apache Shiro 是一个功能强大且易于使用的 Java 安全(权限)框架。Shiro 可以完 成:认证、授权、加密、会话管理、与 Web 集成、缓存 等。...官网:https://shiro.apache.org/ 为什么要用 Shiro  自 2003 年以来,框架格局发生了相当大的变化,因此今天仍然有很多系统在使用Shiro。...  原理 1、Shiro 架构(Shiro 外部来看) 从外部来看 Shiro ,即从应用程序角度的来观察如何使用 Shiro 完成 工作 Shiro 架构 (1)Subject:应用代码直接交互的对象是...(3)Authenticator:负责 Subject 认证,是一个扩展点,可以自定义实现;可以使用认证策略(Authentication Strategy),即什么情况下算用户认证通过了; (4)Authorizer...的;可以是 JDBC 实现,也可以是内存实现等等;由用户提供;所以一般在应用中都需 要 实现自己的 Realm; (6)SessionManager:管理 Session 生命周期的组件;而 Shiro

16130

【Shiro】入门概述

1.是什么 Apache Shiro 是一个功能强大且易于使用的 Java 安全(权限)框架。Shiro 可以完 成:认证、授权、加密、会话管理、与 Web 集成、缓存 等。...官网:https://shiro.apache.org/ 2.为什么要用Shiro 自 2003 年以来 ,框架格局发生了相当大的变化,因此今天仍然有很多系统在使用 Shiro。...) 从外部来看 Shiro ,即从应用程序角度的来观察如何使用 Shiro 完成 工作 Shiro 架构 (1)Subject:应用代码直接交互的对象是 Subject,也就是说 Shiro...(3)Authenticator:负责 Subject 认证,是一个扩展点,可以自定义实现;可以使用认 证 策略(Authentication Strategy),即什么情况下算用户认证通过了;...,即用于获取安全实 体 的;可以是 JDBC 实现,也可以是内存实现等等;由用户提供;所以一般在应用中都需 要 实现自己的 Realm; (6)SessionManager:管理 Session

15840
  • Apache Shiro:强大的Java安全框架

    官网:https://shiro.apache.org/二、为什么要用 Shiro易用性:Shiro 提供了简洁易懂的 Java Security API,即使对于初次接触安全框架的开发者来说,也能快速上手并掌握其使用方法...兼容性:Shiro 的设计模式使其易于与其他框架和应用程序集成。它可以与 Spring、Grails、Wicket、Tapestry、Mule、Apache Camel、Vaadin 等框架无缝集成。...通过这三个组件的协同工作,Shiro 可以实现身份验证、授权等安全功能。...(3)Authenticator:负责 Subject 认证,是一个扩展点,可以自定义实现;可以使用认证策略(Authentication Strategy),即什么情况下算用户认证通过了;(4)Authorizer...的;可以是 JDBC 实现,也可以是内存实现等等;由用户提供;所以一般在应用中都需 要 实现自己的 Realm; (6)SessionManager:管理 Session 生命周期的组件;而 Shiro

    45831

    Shiro学习之Shiro简介

    Apacche Shiro 是一个java的安全的权限的框架; Shiro 可以非常容易的开发出足够的应用,其不仅可以在javaSE环境下使用,也可以在javaEE中使用; Shiro可以完成认证...关于设计,后面的ssm集成shiro里面去说哦 1.3 Shiro架构(外部)架构原理 从外部来看shiro,即应用程序角度来观察如何使用shiro完成工作; Shiro 架构 (1)Subject...(3)Authenticator:负责 Subject 认证,是一个扩展点,可以自定义实现;可以使用认证 策略(Authentication Strategy),即什么情况下算用户认证通过了; (4)Authorizer...;可以是 JDBC 实现,也可以是内存实现等等;由用户提供;所以一般在应用中都需要 实现自己的 Realm; (6)SessionManager:管理 Session 生命周期的组件;而 Shiro 并不仅仅可以用在...1.4 为什么要用 Shiro 自 2003 年以来,框架格局发生了相当大的变化,因此今天仍然有很多系统在使用Shiro。这与 Shiro 的特性密不可分。

    7410

    在您的浏览器中构建和共享开发者环境

    在一个孤立的容器中搭载一个预配置环境的想法吸引了全球领先的技术公司和数百万用户。然而,上述方法仍然需要用户下载软件和镜像,以及管理桌面。而我们在Codenvy中则已经有更为先进的方式。...在Codenvy中构建Dockerfile与在本地构建Dockerfile没有什么区别 - 相同的指令,相同的规则,相同的输出。有几个Codenvy特定的功能,如注入项目源到图像。...这里有一个基于预安装JDK7的镜像搭建Grails环境的例子: FROM codenvy/jdk7 #下载Grails发行版,将其解压到/home/user/$GRAILS_HOME RUN wget...你分享一个镜像,或是镜像 + Vagrantfile,人们下载这些资源,运行一些命令,他们就进入了您配置好的环境。 还记得我们答应详述一键共享和使用开发者环境吗?这并不是一个营销诱饵。...好处是什么?那就是,不用写一个关于“如何试用一个特定框架”的长篇指南和教程,而只用发布这样一个Factory按钮。你的用户只需要一个浏览器。不用下载。不用安装。也不用设置环境偏好。 一个项目。

    1.9K70

    在你的浏览器中构建和共享开发人员环境

    如何点击一个按钮,并在一个预先配置的开发环境找到自己,动动手指就可以让IDE拥有丰富的编辑工具和项目资源?如何在本地开发,但在云中编译和运行项目?好的,第一件事情是首要的。...你只需安装所选的PaaS提供方的CLI或SDK,并使用CLI命令部署应用程序。 Docker使Codenvy运行变得灵活,并且移除了和运行“内容”与特性有关的所有限制。缺少PHP模块吗?...在默认环境中缺少Ruby gem吗?自己添加!这是你的项目和环境。所以,每次用户点击运行按钮,Docker脚本都会被执行。...记住,我们答应了详细地阐述通过点击就能共享和使用开发者环境?这不仅仅是一个营销噱头。想象一下,你已经为你的Grails项目构建自定义的运行时系统,并希望其他人使用它。...用户可以将项目保存到持续的Codenvy帐户中,或者注册并持续使用项目。好处是什么?好吧,通过发布这样一个Factory按钮,取代了编写关于“如何试用一个特定框架”的冗长指导和教程的工作。

    4.5K90

    Groovy on Grails 交流活动

    “Grails 使用了一种解释型语言(Groovy)。”Groovy 是在运行阶段被 Java 虚拟机编译成字节码的,它绝对不是解释执行的——从来都不是,并且以后永远也决不会是。我说了 “永远” 吗?...有很多注重于 Grails 增删改的应用脚手架的例子,但那些只能体现这一小部分功能而已。Grails 是适用于各种方向 web 应用的框架。 “脚手架功能需要我在每次改变后生成。”...到这一章的最后,你就会对 Groovy 有一个基本了解,并且知道可以用它来搞什么东西了。 我们作者和评论家,包括整个编辑团队,衷心祝愿你在使用这本书学习实践 Groovy 的时候,能真正享受快乐。...这体现了一个大型 Grails 商业应用(至少我们在 G2One 公司可以谈论这个事情了,呵呵)的成功发布,此时已经有每月约 186 百万页的访问量了。...非常高兴看到有那么多公司转而关注和使用起 Grails 来,但愿这个势头能维持下去!

    1.7K20

    我是如何成为一个JavaWeb开发者的

    对于有抱负的开发人员,技术的前景会成为压倒一切的动力。但是技术也是在不断变化发展中的。你会冒着学习的东西很快就会过时的风险吗?   ...有一些Javaweb框架,隐藏着JavaServletAPI的用法。如果出现问题,那么你需要知道幕后究竟发生了什么事情。   JPA   JPA——Java持久性API——使用数据库。...JPA是Java传统关系数据库的标准。Hibernate是现在使用最广泛的JPA实现。作为一个Javaweb开发人员,你肯定要用到数据库。...在我的Spring入门在线教程上,我对主要的Spring框架项目做了一个很好的概述,并说明了如何使用它们来构建企业级应用程序。   ...Grails   Grails是建立在Spring之上的快速应用程序开发框架。它不但拥有Spring的所有内容,还借鉴了Groovy的生产力优势。

    96310

    SpringBoot整合Shiro(一)Shiro介绍

    那使用了Shiro我可以干什么呢 使用Shiro可以做权限控制,实现单点登陆等等。 ? ? 大菜鸟 ? 小菜鸟 ? Shiro有什么特点吗? Apache Shiro是一个功能丰富的综合安全框架。...现在权限框架挺多的,为啥一定要使用Shiro呀 其实使用shiro的主要原因就是shiro使用简单,灵活性比较高对于Web的支持很,热插拔,Shiro干净的API和设计模式使它可以方便地与许多的其他框架和应用进行无缝集成...那Shiro的整体都有些什么呀? 整体框架如图: ? (源网络,侵删) ? ? 大菜鸟 ? 小菜鸟 ? 这些都是什么呀?...别急,我给你一一介绍一下: Subject 在shiro中简称用户 SecurityManager是shirod的核心 用来协调shirode各个组件。 ? ?...明白了,原来Shiro还有这么多组件呢 这只是简单的介绍一下Shiro,下一章我教你如何用SpringBoot整合Shiro ? ?

    60820

    Groovy、热部署和热加载(自定义类加载器)及spring loaded 部分源码分析

    从表面上来看没有什么问题,但实际你加载的对象和原来的对象是两个对象,spring loaded是如何将通过热加载的文件重新指向之前的对象应该是一个要思考的问题。...根据网上的文章和实现方式,自己心里有疑问,从网上的几个例子来看,要实现的热部署的过程好像和类加载器没有什么关系,但自己又有疑问那为什么要自己实现类加载器?  ...demo中实现的样子 16bf50c24875ea8e.gif 解决上面划删除线的疑惑,为什么大家要费劲心思的去自己实现一个类加载器,当监测到文件发生变化后,重新自己的类加载器加载一次不可以吗...还有如果觉得你想 在你编写的程序的基础上去 增添一些代码(正常情况下,估计没有人要使用使用自定义有类加载器的方式去 添加一些代码的这个想法)因此主要是为了实现 aop 这个功能,那你编写好自定义的classloader...网上的一些回答 除了从本地或是网上加载类文件,还可以用类加载器来: 在执行不受信任的代码之前自动验证数字签名 使用用户提供的密码透明的解密代码 根据用户的特定需求创建自定义的动态类 额外拓展Grails

    3.3K00

    Shiro官方文档翻译——Apache Shiro的十分钟教程

    介绍 欢迎来到Apache Shiro十分钟教程 通过这个快速简短的教程,你应该充分明白一个开发者在他们的应用中如何使用Shiro。你们应该能做10分钟内完成这些。...实际上,它实现了你的应用程序上所有安全方面的管理,并尽可能避免后门。它建立在良好的接口驱动设计和OO原则的基础上,在您可以想象的地方启用自定义行为。...但是,在一个非web环境下,比如这个简单的Quickstart例子,Shiro 将自动使用它默认的企业Sesson管理者。这意味这你在你的应用程序中使用相同的API,在任何层,与开发环境无关。...Let's say who the are: ok, 所以我们现在有一个已登陆的用户。我们还能做别的什么吗?...举个例子,如果你运行一个单独的应用程序,或者如果你有一个基于web的应用程序,或者一个基于Spring或JEE容器的应用程序,或者以上情况都结合在一起。

    1.1K10

    《Spring Boot极简教程》第8章 Spring Boot集成Groovy,Grails开发第8章 Spring Boot集成Groovy,Grails开发小结参考资料

    一系列强大的特性,如基于sping的依赖注入和各式各样的插件,可以提供创建现代基于web的app的所有需要的东西。 我们使用Grails框架。.../ 数据库的对象关系映射层使用GORM 我们使用 Grail 对象关系映射(Grails Object Relational Mapping,GORM)API 进行数据库层的持久化工作。...具体的实现源码在org.grails.datastore.gorm里面。这个处理方案跟Spring-jpa的思想基本是一样的。都是通过注解元编程,动态生成相应的方法代码。...部署测试 完成上述步骤,我们就已经有了包含CRUD基本功能的Web应用了,使用 gradle bootRun 命令运行工程,使用浏览器访问:http://localhost:8008/ 你将看到如下页面...我们简单看一个例子。如下图: ? 这里的“New Milestone”,是怎么实现的呢?

    2.5K30

    Shiro安全框架【快速入门】就这一篇!

    在配置 Shiro 的时候,你必须指定至少一个Realm 来实现认证(authentication)和/或授权(authorization)。...上图展示了 Shiro 认证的一个重要的过程,为了加深我们的印象,我们来自己动手来写一个例子,来验证一下,首先我们新建一个Maven工程,然后在pom.xml中引入相关依赖: ...Shiro 加密 在之前的学习中,我们在数据库中保存的密码都是明文的,一旦数据库数据泄露,那就会造成不可估算的损失,所以我们通常都会使用非对称加密,简单理解也就是不可逆的加密,而 md5 加密算法就是符合这样的一种算法...在 Shiro 框架中,对于这样的操作提供了简单的代码实现: String password = "123456"; String salt = new SecureRandomNumberGenerator.../** getter and setter */ } 注意:这里有一个坑,还缠了我蛮久感觉,就是当我们想要使用RESTful风格返回给前台JSON数据的时候,这里有一个关于多对多无限循环的坑

    97610

    我是如何成为一个JavaWeb开发者的

    对于有抱负的开发人员,技术的前景会成为压倒一切的动力。但是技术也是在不断变化发展中的。你会冒着学习的东西很快就会过时的风险吗?   ...有一些Javaweb框架,隐藏着JavaServletAPI的用法。如果出现问题,那么你需要知道幕后究竟发生了什么事情。   JPA   JPA——Java持久性API——使用数据库。...JPA是Java传统关系数据库的标准。Hibernate是现在使用最广泛的JPA实现。作为一个Javaweb开发人员,你肯定要用到数据库。...在我的Spring入门在线教程上,我对主要的Spring框架项目做了一个很好的概述,并说明了如何使用它们来构建企业级应用程序。   ...Grails   Grails是建立在Spring之上的快速应用程序开发框架。它不但拥有Spring的所有内容,还借鉴了Groovy的生产力优势。

    88810

    8.2 Spring Boot集成Groovy、Grails开发小结参考资料

    一系列强大的特性,如基于sping的依赖注入和各式各样的插件,可以提供创建现代基于web的app的所有需要的东西。 我们使用Grails框架。.../ 数据库的对象关系映射层使用GORM 我们使用 Grail 对象关系映射(Grails Object Relational Mapping,GORM)API 进行数据库层的持久化工作。...具体的实现源码在org.grails.datastore.gorm里面。这个处理方案跟Spring-jpa的思想基本是一样的。都是通过注解元编程,动态生成相应的方法代码。...部署测试 完成上述步骤,我们就已经有了包含CRUD基本功能的Web应用了,使用 gradle bootRun 命令运行工程,使用浏览器访问:http://localhost:8008/ 你将看到如下页面...我们简单看一个例子。如下图: ? 这里的“New Milestone”,是怎么实现的呢?

    2.3K30

    不用 Spring Security 可否?试试这个小而美的安全框架

    ;即控制着用户能访问应用中的哪些功能 Realm 可以有 1 个或多个 Realm,可以认为是安全实体数据源,即用于获取安全实体的;可以是JDBC实现,也可以是LDAP实现,或者内存实现等等;由用户提供...;注意:Shiro 不知道你的用户/权限存储在哪及以何种格式存储;所以我们一般在应用中都需要实现自己的Realm SessionManager 如果写过 Servlet 就应该知道 Session 的概念...,推荐用这个注解) 授权官网给出明确的授权策略与案例,请查看:http://shiro.apache.org/permissions.html 上面的例子我们通过一直在通过访问 Mysql 获取用户认证和授权信息...,也会对理解 Spring Security 有很大帮助,点击文末「阅读原文」,效果更好 落霞与孤鹜齐飞 秋水共长天一色,产品经理和程序员一片祥和… 灵魂追问 都说 Redis 是单线程,但是很快,你知道为什么吗...你们项目中是怎样控制认证授权的呢?当授权有变化,对于程序员来说,这个修改是灾难吗?

    53730

    在微服务项目中,Spring Security 比 Shiro 强在哪?

    但是在最初的几年里,Spring Security 依然无法得到广泛的使用。 直到有一天 Spring Boot 像谜一般出现在江湖边缘,彻底颠覆了 JavaEE 的世界。...有小伙伴可能觉得这个太笼统了,我再举一个实际点的例子。...1.2 配置臃肿吗? 「有的人觉得 Spring Security 配置臃肿。」 如果是 SSM + Spring Security 的话,我觉得这话有一定道理。...2.2 有哪些功能 Apache Shiro 是一个强大而灵活的开源安全框架,它干净利落地处理身份认证,授权,企业会话管理和加密。Apache Shiro 的首要目标是易于使用和理解。...但是如果你是传统的 SSM 项目,不是微服务项目,那么无疑使用 Shiro 是最方便省事的,因为它足够简单,足够轻量级。 3. 如何取舍 在公司里做开发,这两个要如何取舍,还是要考虑蛮多东西的。

    4.6K51

    Shiro安全框架【快速入门】就这一篇!

    在配置 Shiro 的时候,你必须指定至少一个Realm 来实现认证(authentication)和/或授权(authorization)。...Shiro 认证过程 上图展示了 Shiro 认证的一个重要的过程,为了加深我们的印象,我们来自己动手来写一个例子,来验证一下,首先我们新建一个Maven工程,然后在pom.xml中引入相关依赖: Shiro 加密 在之前的学习中,我们在数据库中保存的密码都是明文的,一旦数据库数据泄露,那就会造成不可估算的损失,所以我们通常都会使用非对称加密,简单理解也就是不可逆的加密,而 md5 加密算法就是符合这样的一种算法...在 Shiro 框架中,对于这样的操作提供了简单的代码实现: String password = "123456"; String salt = new SecureRandomNumberGenerator.../** getter and setter */ } 注意:这里有一个坑,还缠了我蛮久感觉,就是当我们想要使用RESTful风格返回给前台JSON数据的时候,这里有一个关于多对多无限循环的坑

    1.5K20

    细数Java项目中用过的配置文件(ini 篇)

    那么,项目中的配置信息,你平时都是怎样来实现的呢?你项目中用过哪些配置文件呢?...另外,项目研发中在面对身份验证、授权、密码和会话管理等需求时,经常会集成 Java 安全框架 Shiro,而 Shiro 就提供了使用 ini 文件,进行配置参数的能力(INI is easy to read...首先,Shiro 加载配置文件支持好几种方式,我们就挑如何加载类路径下的 shiro.ini 配置文件进行剖析,掌握这一条路径,其它方式殊途同归。 ?...如上图源码所示,在加载 shiro.ini 配置文件前,首先会判断文件是否存在,存在则从类路径下进行加载,而且会发现 Shiro 把 ini 配置封装成了 Ini 对象(这不就是面向对象吗?...看到上面的代码,会发现依然没有真正的读取,而是继续包装 Reader,变成 Scanner 来获取文件输入(敢问,有必要这么绕来绕去吗?不过,无所谓,继续往下看!) ?

    94910
    领券