Grails安全问题和搜索引擎优化

时间:2009-05-18 02:33:40

标签: grails spring-mvc spring-security gsp

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

我想限制除了单身和登录之外的所有GSP的访问权限,因此如果用户打开任何其他gsp,他将被重定向到注册页面,他也将能够导航到登录页面。

我试图实现的逻辑是这样的,如果current_Page是login.gsp或singup.gsp然后什么都不做重定向到注册//用户可以导航到登录页面而没有任何问题

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

我想知道是否有使用RequestmapController或UrlMappings的替代方法吗?

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

注意:我正在使用Acegi插件

备注:如何实施这种类型的安全机制,应用程序是否适合搜索引擎优化(即谷歌索引)?

3 个答案:

答案 0 :(得分:3)

您应该阅读:link text

使用ACEGI插件的教程:link text

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

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

答案 1 :(得分:3)

修改:抱歉,我误解了你的问题。我以为你在寻找Requestmaps的替代方案。这就是我最初建议securing the controllers with annotations.

的原因

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

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

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

  3. IS_AUTHENTICATED_ANONYMOUSLY表示任何人都可以访问匹配的网址。第一条规则更具体,因此应覆盖第二条更一般的规则。

    您可以查看AcegiSecurity Plugin - Securing URLs了解详情。

    关于网站的SEO。 AFAIK搜索引擎无法访问需要身份验证的网站。这就是为什么像Experts Exchange这样的网站使用sly tricks来获取Google索引的原因。

    您可以选择为匿名用户提供读取权限,同时需要登录进行写入(如SO所做的那样)。这将允许您的网站被搜索引擎机器人编入索引。

    我希望这有帮助!

答案 2 :(得分:1)

您需要Spring安全插件。执行此操作的最佳方法不是在您的GSP中,而是在所有Web请求上使用过滤器。这将为您提供Requestsps和UrlMappings GrailsNewbie提到的。