在Java web应用程序中,有没有办法不使用web.xml来限制对web资源的访问?

在Java web应用程序中,有没有办法不使用web.xml来限制对web资源的访问?,java,web-applications,servlets,Java,Web Applications,Servlets,我希望只允许登录用户访问web应用程序中的某些资源。我在没有使用任何j_安全检查的情况下实现了身份验证,因为我发现它非常严格和不透明。我想知道是否有任何干净的方法可以在不依赖web.xml(安全约束和web资源集合元素)的情况下限制对web资源的访问 另外,我不想使用任何臃肿的框架,如Spring之类。使用由web.xml控制的安全模型是控制授权的主要方式。我想你有重新发明轮子的危险。标准设施真的很强大,我同意有一个学习曲线,但资源,如帮助 对于动态资源,您可以自由实施您自己的授权模型,对于复杂

我希望只允许登录用户访问web应用程序中的某些资源。我在没有使用任何j_安全检查的情况下实现了身份验证,因为我发现它非常严格和不透明。我想知道是否有任何干净的方法可以在不依赖web.xml(安全约束和web资源集合元素)的情况下限制对web资源的访问


另外,我不想使用任何臃肿的框架,如Spring之类。

使用由web.xml控制的安全模型是控制授权的主要方式。我想你有重新发明轮子的危险。标准设施真的很强大,我同意有一个学习曲线,但资源,如帮助


对于动态资源,您可以自由实施您自己的授权模型,对于复杂的授权,这可能会有所帮助。

您可以定义一个
过滤器,将其映射到
/*
,并让它处理受限制的资源。在您自己的配置文件中列出它们,并检查用户在访问其中一个资源时是否已登录。如果没有-重定向到登录页面;如果是-继续(
chain.doFilter(…)

您可以始终将资源放在
WEB-INF
文件夹中。假设用户已登录。现在他输入一个JSP的直接URL,然后我需要在不限制访问的情况下显示页面。如果我把它保存在WEB-INF中,那么就不可能轻易地解决这个问题。如果没有更多的细节,这个问题很难回答。例如,你没有说你是如何实现身份验证的,你的机制捕获了什么样的身份验证细节,或者把它们放在了什么地方。我只是写了一个servlet,它根据db中的一个表检查密码和用户id的散列,如果通过了,它就会设置一个用户(角色和配置文件信息)对象,该对象位于会话中,由web应用的其余部分使用。这就是我现在所做的一切。现在我不得不像web.xml那样限制访问。我正在考虑编写一些过滤器来实现这一点,但我不确定。@Narendra-如果你将代码库大小等同于膨胀,那么与Java 1.1相比,Java 7一定是一个巨大的膨胀案例。然而,每个人和他的狗都准备抱怨爪哇缺少什么。没有人喜欢使用完全未经许可的JavaME进行编码。(警告:这条评论被夸大了,以达到戏剧性的效果。)或者,即使没有,下一个看代码的人也会宣布代码膨胀:-)