acegi plugin 想把整個網站都加入權限保護

19 views
Skip to first unread message

derekypp peng

unread,
Jan 18, 2010, 4:08:25 AM1/18/10
to grail...@googlegroups.com
使用acegi plugin

如果把整個網站都加入權限保護

所以試著在requestmap 的 URL 填上了 /**

都會得到錯誤 310 (net::ERR_TOO_MANY_REDIRECTS): 重新導向次數過多。

請問一下大家,如果一次要加入整個網站,該如何處理?

謝謝

Tigerf

unread,
Jan 18, 2010, 4:18:48 AM1/18/10
to grailsunion
至少要把填用户名、口令的页面作为例外呀

否则访问登录页->重定向到登录页->访问登录页......

这就死循环了,不停的重定向。

Thanks & Best Regards
Tigerf


2010/1/18 derekypp peng <dere...@gmail.com>
--
您收到此邮件是因为您订阅了 Google 网上论坛的“Grails联盟-GrailsUnion”论坛。
要向此网上论坛发帖,请发送电子邮件至 grail...@googlegroups.com
要取消订阅此网上论坛,请发送电子邮件至 grailsunion...@googlegroups.com
若有更多问题,请通过 http://groups.google.com/group/grailsunion?hl=zh-CN 访问此网上论坛。


derekypp peng

unread,
Jan 18, 2010, 10:44:56 AM1/18/10
to grail...@googlegroups.com
TigerF 大大,請問可以否再解釋一下『至少要把填用户名、口令的页面作为例外呀』
這個不太理解您的意思

謝謝

2010/1/18 Tigerf <tig...@gmail.com>

Tigerf

unread,
Jan 18, 2010, 7:45:19 PM1/18/10
to grailsunion
在用户登录前,必须能够访问一个页面,在这个页面上填入用户名、口令。这个页面必须是不需要登录就可以访问的。
你现在将“/**”限制为必须登录才能访问,也就限制了用户使用这个登录的页面。

Liu Chao

unread,
Jan 18, 2010, 10:49:56 PM1/18/10
to grail...@googlegroups.com
你把/**设了权限,访问任何页面都会跳转到loginFormUrl,默认是/login/auth;可访问/login/auth也要权限,所以会再次跳转到/login/auth,无穷尽也。
你只要把/login/auth设为IS_AUTHENTICATED_ANONYMOUSLY权限就可以了。另外最好把静态资源如/images/**,/js/**和/css/**也设成IS_AUTHENTICATED_ANONYMOUSLY,否则你的登录界面会惨不忍睹

2010/1/19 Tigerf <tig...@gmail.com>



--
My Grails Powered Website:
http://team.goal98.com

Grails Melody Plugin:
http://www.grails.org/plugin/grails-melody

Grails Templar Poject:
http://code.google.com/p/grails-templar/

Tigerf

unread,
Jan 19, 2010, 12:46:37 AM1/19/10
to grailsunion
同时设定了 /** 和 /login/* ,/login/*会优先吗?我以为一定不能使用 /** 呢。



Thanks & Best Regards
Tigerf


2010/1/19 Liu Chao <liuc...@gmail.com>

Ford Guo

unread,
Jan 19, 2010, 12:47:54 AM1/19/10
to grail...@googlegroups.com
放在前面的会先被匹配到,详细可以参考官方插件的文档。
Ford Guo


2010/1/19 Tigerf <tig...@gmail.com>

derekypp peng

unread,
Jan 19, 2010, 12:04:40 PM1/19/10
to grail...@googlegroups.com
謝謝 Liu Chao 的提醒

告訴我也要把/images/**,/js/**和/css/** 這些也設為IS_AUTHENTICATED_ANONYMOUSLY
不然我一直在想 為什麼我的gsp都怪怪的



2010/1/19 Ford Guo <agil...@gmail.com>
1E3.gif

Liu Chao

unread,
Jan 20, 2010, 9:08:12 AM1/20/10
to grail...@googlegroups.com
呵呵,其實如果你能把到插件里的DefaultSecurityConfig.groovy里面參數設置基本弄明白的話就能了解這個插件是怎么回事了。有時間再研究研究插件到底配置了那些spring beans,雖然沒啥必要。

2010/1/20 derekypp peng <dere...@gmail.com>
1E3.gif

DANNY

unread,
Jan 25, 2010, 8:27:34 PM1/25/10
to Grails联盟-GrailsUnion
自從了解 /** 的好用之後
開始在自已另一個project也想改成 /**

不過一直怪怪的
假設我有 A B C D E F H 七個頁面
然後我有兩個身份 ROLE_ADMIN , ROLE_NORMAL
ROLE_ADMIN 可以看 A B C D E F H
ROLE_NORMAL只能看A B C D E F

Ford大大上面有寫到說,寫在前面的會被先匹配到,這裡的前面指的是id的順序嗎?

1 ROLE_AMIND /**
2 ROLE_NORAML /A
3 ROLE_NORAML /B
.........
3 ROLE_NORAML /F

不過在我不知道/** 這個寫法 我寫更多筆,幾乎是抄一次ROLE_NORAML
ROLE_NORAML要寫很多次...有沒有辦法可以簡化?

還有,請問一下我都直接在database 改這些URL規則,可是改完都不會馬上生效
一定要重run project才會生效

大家也是這樣嗎?


On 1月20日, 下午10時08分, Liu Chao <liucha...@gmail.com> wrote:
> 呵呵,其實如果你能把到插件里的DefaultSecurityConfig.groovy里面參數設置基本弄明白的話就能了解這個插件是怎么回事了。有時間再研究研究插件到底配置了那些spring
> beans,雖然沒啥必要。
>

> 2010/1/20 derekypp peng <derek...@gmail.com>


>
>
>
> > 謝謝 Liu Chao 的提醒
>
> > 告訴我也要把/images/**,/js/**和/css/** 這些也設為IS_AUTHENTICATED_ANONYMOUSLY
> > 不然我一直在想 為什麼我的gsp都怪怪的

> > [?]
>
> > 2010/1/19 Ford Guo <agile....@gmail.com>


>
> > 放在前面的会先被匹配到,详细可以参考官方插件的文档。
> >> Ford Guo
>
> >> 2010/1/19 Tigerf <tig...@gmail.com>
>
> >>> 同时设定了 /** 和 /login/* ,/login/*会优先吗?我以为一定不能使用 /** 呢。
>
> >>> Thanks & Best Regards
> >>> Tigerf
>

> >>> 2010/1/19 Liu Chao <liucha...@gmail.com>


>
> >>>> 你把/**设了权限,访问任何页面都会跳转到loginFormUrl,默认是/login/auth;可访问/login/auth也要权限,所以会再次跳转到/login/auth,无穷尽也。
>
> >>>> 你只要把/login/auth设为IS_AUTHENTICATED_ANONYMOUSLY权限就可以了。另外最好把静态资源如/images/**,/js/**和/css/**也设成IS_AUTHENTICATED_ANONYMOUSLY,否则你的登录界面会惨不忍睹
>
> >>>> 2010/1/19 Tigerf <tig...@gmail.com>
>
> >>>> 在用户登录前,必须能够访问一个页面,在这个页面上填入用户名、口令。这个页面必须是不需要登录就可以访问的。
> >>>>> 你现在将"/**"限制为必须登录才能访问,也就限制了用户使用这个登录的页面。
>
> >>>>> Thanks & Best Regards
> >>>>> Tigerf
>

> >>>>> 2010/1/18 derekypp peng <derek...@gmail.com>


>
> >>>>>> TigerF 大大,請問可以否再解釋一下『至少要把填用户名、口令的页面作为例外呀』
> >>>>>> 這個不太理解您的意思
>
> >>>>>> 謝謝
>
> >>>>>> 2010/1/18 Tigerf <tig...@gmail.com>
>
> >>>>>> 至少要把填用户名、口令的页面作为例外呀
>
> >>>>>>> 否则访问登录页->重定向到登录页->访问登录页......
>
> >>>>>>> 这就死循环了,不停的重定向。
>
> >>>>>>> Thanks & Best Regards
> >>>>>>> Tigerf
>

> >>>>>>> 2010/1/18 derekypp peng <derek...@gmail.com>


>
> >>>>>>>> 使用acegi plugin
>
> >>>>>>>> 如果把整個網站都加入權限保護
>
> >>>>>>>> 所以試著在requestmap 的 URL 填上了 /**
>
> >>>>>>>> 都會得到錯誤 310 (net::ERR_TOO_MANY_REDIRECTS): 重新導向次數過多。
>
> >>>>>>>> 請問一下大家,如果一次要加入整個網站,該如何處理?
>
> >>>>>>>> 謝謝
>
> >>>>>>>> --
> >>>>>>>> 您收到此邮件是因为您订阅了 Google 网上论坛的"Grails联盟-GrailsUnion"论坛。
> >>>>>>>> 要向此网上论坛发帖,请发送电子邮件至 grail...@googlegroups.com

> >>>>>>>> 要取消订阅此网上论坛,请发送电子邮件至 grailsunion...@googlegroups.com<grailsunion%2Bunsu...@googlegroups.com>
> >>>>>>>> 。
> >>>>>>>> 若有更多问题,请通过http://groups.google.com/group/grailsunion?hl=zh-CN访问此网上论坛。


>
> >>>>>>> --
> >>>>>>> 您收到此邮件是因为您订阅了 Google 网上论坛的"Grails联盟-GrailsUnion"论坛。
> >>>>>>> 要向此网上论坛发帖,请发送电子邮件至 grail...@googlegroups.com

> >>>>>>> 要取消订阅此网上论坛,请发送电子邮件至 grailsunion...@googlegroups.com<grailsunion%2Bunsu...@googlegroups.com>
> >>>>>>> 。
> >>>>>>> 若有更多问题,请通过http://groups.google.com/group/grailsunion?hl=zh-CN访问此网上论坛。


>
> >>>>>> --
> >>>>>> 您收到此邮件是因为您订阅了 Google 网上论坛的"Grails联盟-GrailsUnion"论坛。
> >>>>>> 要向此网上论坛发帖,请发送电子邮件至 grail...@googlegroups.com

> >>>>>> 要取消订阅此网上论坛,请发送电子邮件至 grailsunion...@googlegroups.com<grailsunion%2Bunsu...@googlegroups.com>
> >>>>>> 。
> >>>>>> 若有更多问题,请通过http://groups.google.com/group/grailsunion?hl=zh-CN访问此网上论坛。


>
> >>>>> --
> >>>>> 您收到此邮件是因为您订阅了 Google 网上论坛的"Grails联盟-GrailsUnion"论坛。
> >>>>> 要向此网上论坛发帖,请发送电子邮件至 grail...@googlegroups.com

> >>>>> 要取消订阅此网上论坛,请发送电子邮件至 grailsunion...@googlegroups.com<grailsunion%2Bunsu...@googlegroups.com>
> >>>>> 。
> >>>>> 若有更多问题,请通过http://groups.google.com/group/grailsunion?hl=zh-CN访问此网上论坛。


>
> >>>> --
> >>>> My Grails Powered Website:
> >>>>http://team.goal98.com
>
> >>>> Grails Melody Plugin:
> >>>>http://www.grails.org/plugin/grails-melody
>
> >>>> Grails Templar Poject:
> >>>>http://code.google.com/p/grails-templar/
>
> >>>> --
> >>>> 您收到此邮件是因为您订阅了 Google 网上论坛的"Grails联盟-GrailsUnion"论坛。
> >>>> 要向此网上论坛发帖,请发送电子邮件至 grail...@googlegroups.com

> >>>> 要取消订阅此网上论坛,请发送电子邮件至 grailsunion...@googlegroups.com<grailsunion%2Bunsu...@googlegroups.com>
> >>>> 。
> >>>> 若有更多问题,请通过http://groups.google.com/group/grailsunion?hl=zh-CN访问此网上论坛。


>
> >>> --
> >>> 您收到此邮件是因为您订阅了 Google 网上论坛的"Grails联盟-GrailsUnion"论坛。
> >>> 要向此网上论坛发帖,请发送电子邮件至 grail...@googlegroups.com

> >>> 要取消订阅此网上论坛,请发送电子邮件至 grailsunion...@googlegroups.com<grailsunion%2Bunsu...@googlegroups.com>
> >>> 。
> >>> 若有更多问题,请通过http://groups.google.com/group/grailsunion?hl=zh-CN访问此网上论坛。


>
> >> --
> >> 您收到此邮件是因为您订阅了 Google 网上论坛的"Grails联盟-GrailsUnion"论坛。
> >> 要向此网上论坛发帖,请发送电子邮件至 grail...@googlegroups.com

> >> 要取消订阅此网上论坛,请发送电子邮件至 grailsunion...@googlegroups.com<grailsunion%2Bunsu...@googlegroups.com>
> >> 。
> >> 若有更多问题,请通过http://groups.google.com/group/grailsunion?hl=zh-CN访问此网上论坛。


>
> > --
> > 您收到此邮件是因为您订阅了 Google 网上论坛的"Grails联盟-GrailsUnion"论坛。
> > 要向此网上论坛发帖,请发送电子邮件至 grail...@googlegroups.com

> > 要取消订阅此网上论坛,请发送电子邮件至 grailsunion...@googlegroups.com<grailsunion%2Bunsu...@googlegroups.com>
> > 。
> > 若有更多问题,请通过http://groups.google.com/group/grailsunion?hl=zh-CN访问此网上论坛。


>
> --
> My Grails Powered Website:http://team.goal98.com
>
> Grails Melody Plugin:http://www.grails.org/plugin/grails-melody
>
> Grails Templar Poject:http://code.google.com/p/grails-templar/
>

> 1E3.gif
> 3K檢視下載

Ford Guo

unread,
Jan 25, 2010, 8:30:32 PM1/25/10
to grail...@googlegroups.com
我说得顺序,是URL的顺序,不是Role的顺序,呵呵
如果你把URL放到DB中,建议用RequestMap,写在Config中的会在启动的时候加载到内存,因此每次修改都需要重新启动,适合不是很复杂的系统。

Ford Guo


2010/1/26 DANNY <dere...@gmail.com>

Ford Guo

unread,
Jan 25, 2010, 8:33:13 PM1/25/10
to grail...@googlegroups.com
再补充一下,比如你需要user的show都可以看到,而user的edit只有admin才可以,你需要如下:
/user/show/**=IS_AUTHENTICATED_FULLY
/user/edit/**=RoleType.ADMINISTRATOR

Ford Guo


2010/1/26 Ford Guo <agil...@gmail.com>

Ford Guo

unread,
Jan 25, 2010, 8:35:27 PM1/25/10
to grail...@googlegroups.com
再补充,呵呵,上面例子不典型,show谁都可以看到,而除了show以外的只有admin
/user/show/**=IS_AUTHENTICATED_FULLY
/user/**=RoleType.ADMINISTRATOR

如果上面颠倒,会导致show也需要admin的,这是我说得顺序相关

Liu Chao

unread,
Jan 25, 2010, 10:01:56 PM1/25/10
to grail...@googlegroups.com
这个需求无非是H只能是admin能看,只要配成
/H = ROLE_ADMIN
/** = IS_AUTHENTICATED_FULLY
就够了

2010/1/26 Ford Guo <agil...@gmail.com>
Reply all
Reply to author
Forward
0 new messages