如何使用 shiro 在 grails 2.0 中实现 BasicHttpAuthentication?有啥亮眼的例子吗?
Posted
技术标签:
【中文标题】如何使用 shiro 在 grails 2.0 中实现 BasicHttpAuthentication?有啥亮眼的例子吗?【英文标题】:How do you implement BasicHttpAuthentication in grails 2.0 using shiro? Any shinning example?如何使用 shiro 在 grails 2.0 中实现 BasicHttpAuthentication?有什么亮眼的例子吗? 【发布时间】:2021-12-12 02:46:48 【问题描述】:我当前的项目设置已经有 shiro 1.1.4,它使用登录和注销。例如,该项目已经设置了 grails shiro start。该项目使用了 securityFilter.groovy、AuthController.groovy 和 BootStrap.groovy。该插件是通过 BuildConfig.groovy 配置的。 我需要 shiro.ini 文件吗? 如何使用基本 http 身份验证设置非交互式登录?
【问题讨论】:
【参考方案1】:我还在旧的 grails 2.4.2 Project 中使用通过 HttpBasicAuth 连接到几个控制器的能力。
一般来说,应用程序是通过 Apache-Shiro 保护的,但我在应用程序中有 2 个需要 BasicAuth 的包/控制器。
因此我扩展了 UrlMappings.groovy 文件:
class UrlMappings
static mappings =
group("/api")
"/api/$action?/$id?(.$format)?"(controller: 'api')
group("/dw")
"/dw/$action?/$id?(.$format)?"(controller: 'dw')
...
和 Config.groovy:
security
shiro
authc.required = false
filter.config = """\
[filters]
# HTTP Basic authentication
authcBasic = org.apache.shiro.web.filter.authc.BasicHttpAuthenticationFilter
authcBasic.applicationName = MyGrailsApp API
[urls]
/api/** = authcBasic
/dw/** = authcBasic
"""
【讨论】:
谢谢@susi。不过,您将如何避免使用 API? 您好@Dani,您的意思是通过基本身份验证访问所有内容(每个控制器和操作)?在这种情况下,我认为您不需要组映射并设置 /*/** = authBasic ...只是猜测...以上是关于如何使用 shiro 在 grails 2.0 中实现 BasicHttpAuthentication?有啥亮眼的例子吗?的主要内容,如果未能解决你的问题,请参考以下文章
没有 Spring 安全性的 Grails 的 OAuth 2.0