我正在尝试构建一个依赖于当前 gsp 页面来调用操作的控制逻辑,是否有一个标签或会话方法可以用来识别当前的 gsp 页面

我想限制对除注册和登录之外的所有 GSP 的访问,因此,如果用户打开任何其他 GSP,他将被重定向到注册页面,并且他还可以导航到登录页面。

我试图实现的逻辑是这样的,如果 current_Page 是 login.gsp 或 singup.gsp 那么不执行任何其他操作重定向到注册 //用户可以导航到登录页面也没有问题

我想在主布局中添加此逻辑,以便在所有应用程序域中实现它。

我想知道是否有其他方法可以使用 RequestmapController 或 UrlMappings 来执行此操作?

任何有 springMVC 经验的人都可以提供帮助,因为 Grails 构建在 SpringMVC 之上,而 SpringMVC 又构建在标准 servlet 框架之上!

笔记:我正在使用 Acegi 插件

评论:该应用程序如何对 SEO 友好(即Google 索引)实施了这种类型的安全机制吗?

有帮助吗?

解决方案

编辑:抱歉,我误解了你的问题。我以为您正在寻找 Requestmaps 的替代品。这就是为什么我最初建议 使用注释保护控制器。

如果您想使用 Requestmaps,您可以执行以下操作:

  1. 创建一个新的 Requestmap,如下所示:
    网址模式= /login/**
    角色= IS_AUTHENTICATED_ANONYMOUSLY

  2. 要限制对网站其余部分的访问,请创建另一个与所有 url 匹配的 requestmap 条目:
    网址模式= /*/**
    角色= ROLE_USER (您可以使用任何您喜欢的其他角色)

IS_AUTHENTICATED_ANONYMOUSLY 意味着任何人都可以访问匹配的 URL。第一个规则更具体,因此应该覆盖第二个更通用的规则。

你可以看看 AcegiSecurity 插件 - 保护 URL 了解更多信息。

关于网站的SEO。据我所知,搜索引擎无法访问需要身份验证的网站。这就是为什么像 Experts Exchange 这样的网站使用 狡猾的伎俩 被谷歌索引。

您可以选择授予匿名用户读取权限,同时需要登录才能写入(就像 SO 所做的那样)。这将允许您的网站被搜索引擎机器人索引。

我希望这有帮助!

其他提示

你应该读一下这个: 链接文本

以及使用 ACEGI 插件的教程: 链接文本

后者是我要走的路。它允许您设置角色并按角色保护“页面”和 URL。它还包括一种创建用户并将其分配给角色的方法。

要安装 ACEGI grails 插件,请执行以下操作: grails install-plugin acegi

您需要的春季安全插件。要做到这一点,最好的办法是不是在您的GSP但使用上的所有网页请求的过滤器。这会给你Requestmaps和UrlMappings GrailsNewbie提及。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top