最近,我发现了Tapestry 5,它清晰地分离了视图和控制器,使用名称标准化代替了XML,这让我直截了当地选择了它。坦率地说,我不打算改变,但文档对我来说是不够的。
我正在工作的项目必须能够支持几种类型的角色。我必须允许用户认证,根据他们的角色使用某些服务,以及通过他们的角色访问url。
经过一些研究,我偶然发现了Tapestry-Security,它是Tynamo项目的一部分。
我希望我的服务层完全独立于我的web应用程序,因为我将使用它来实现web服务和其他一些东西。当时机成熟时,我不想再做另一个身份识别系统。
我的问题是,如果不使用Tapestry-Security指南中显示的Tapestry.The示例,我就不知道如何使用Tapestry-Security。我有一个相当粗略的想法,它是如何工作的。但是,我不知道如何在Tapestry 5之外使用它。
没有Tapestry 5,我如何使用Tapestry-Security?
我也不理解在Tapestry项目的AppModule类中使用的过滤器系统。是否有文档解释AppModule与过滤器系统的工作方式?
有没有人可以给我解释这些事情,或者给我指明正确的方向?
谢谢。
发布于 2010-08-22 20:19:32
Tapestry-安全只是Apache Shiro项目顶部的一层薄薄的东西。它只提供:
.tml文件中的条件呈现在这一层之下,有一个普通的Shiro实例执行所有的工作,所以您可以访问安全性(例如,通过SecurityUtils类),就像您通常在根本不涉及Tapestry时一样。
基于注释进行编辑:因此,虽然您可以在使用的任何web应用程序中使用Shiro,但Tapestry-Security实际上只是一个用于Tapestry的包装器。但是,如果您的应用程序包含Tapestry和其他servlet(例如web服务),则应该能够让Tapestry-Security执行初始化工作。
关于Tapestry过滤器:恐怕这方面的文档不是很好。Tapestry筛选器的工作原理与Servlet筛选器非常相似,但由于Tapestry是implemented as a Servlet Filter itself,所以它有自己的筛选器链。Tapestry的过滤器实现了RequestFilter接口。
public class MyFilter implements RequestFilter {
@Override
public boolean service(final Request request, final Response response,
final RequestHandler handler) throws IOException {
... //your code
try {
return handler.service(request, response);
} finally {
... //your code
}
}
}您可以通过在应用程序模块中提供它们来将它们添加到过滤器链中:
public void contributeRequestHandler(
final OrderedConfiguration<RequestFilter> configurations) {
configuration.add("MyFilter", new MyFilter());
}https://stackoverflow.com/questions/3541265
复制相似问题