首页
学习
活动
专区
工具
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

15530

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

15140
  • 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

    39531

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

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

    1.8K70

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

    如何点击一个按钮,并在一个预先配置开发环境找到自己,动动手指就可以让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生产力优势。

    96010

    SpringBoot整合Shiro(一)Shiro介绍

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

    60620

    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依赖注入和各式各样插件,可以提供创建现代基于webapp所有需要东西。 我们使用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

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

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

    3.3K00

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

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

    88210

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

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

    95610

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

    一系列强大特性,如基于sping依赖注入和各式各样插件,可以提供创建现代基于webapp所有需要东西。 我们使用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 是单线程,但是很快,你知道为什么...你们项目中是怎样控制认证授权呢?当授权变化,对于程序员来说,这个修改是灾难

    53230

    微服务项目中,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.4K51

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

    配置 Shiro 时候,你必须指定至少一个Realm 来实现认证(authentication)和/或授权(authorization)。...Shiro 认证过程 上图展示了 Shiro 认证一个重要过程,为了加深我们印象,我们来自己动手来写一个例子,来验证一下,首先我们新建一个Maven工程,然后pom.xml中引入相关依赖: <dependency...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 来获取文件输入(敢问,必要这么绕来绕去?不过,无所谓,继续往下看!) ?

    92510

    springboot shiro实现权限管理

    记得第一次使用shiro才入行遇到公司第一个框架,当时并不知道这是什么,或者说根本就没有安全框架概念,慢慢实践中,也对这个了一定了解,于是在网上找各种资料学习,了解。...开始使用shiro时,是与spring进行整合,可以看这里,当时没有实现太多功能,但是把一些外围模块都已经实现,而且能够进行多realm匹配。...首先在学习这个框架时,都基本都会看到图,那么我们需要了解无非围绕着shiro里面这些核心模块,具体是干什么什么时候,怎么去用,了解到这些之后,我们就可以按照自己想法与设计,适当场合与环境下正确使用该框架为我们提供功能...更详细信息可参考这个博客。 进行编码工作前,还是需要了解一些其他比较重要 概念,我们知道,shiro核心就是认证和鉴权,那么实现原理无非是通过servletFilter来完成。...shiro基本可以当个黑盒使用,因为如何进行认证,如何进行全校校验已经由框架完成,留给开发者做就是构建认证与鉴权需要对象,而这些对象都是以realm形式存在,我们只需要注入自定义realm即可,

    1.5K30
    领券