登录我的Java web应用程序时,我';m直接指向登录表单使用的CSS,如何修复此问题?
我有一个Java web应用程序,它由各种servlet和jsp组成——例如:控制器servlet登录我的Java web应用程序时,我';m直接指向登录表单使用的CSS,如何修复此问题?,java,security,web,web.xml,security-constraint,Java,Security,Web,Web.xml,Security Constraint,我有一个Java web应用程序,它由各种servlet和jsp组成——例如:控制器servlet/controller?abc=123&xyz=567,一些其他servlet/showDocument?docid=55,以及一些直接访问jsp的方法,/userDetails.jsp 我已经启用了web安全以阻止访问所有(如下所示),并且我有一个链接到css文件/styles.css的login.jsp页面 当我访问任何URL时,我被重定向到login.jsp页面 问题是: (1) 登录页面上没
/controller?abc=123&xyz=567
,一些其他servlet/showDocument?docid=55
,以及一些直接访问jsp的方法,/userDetails.jsp
我已经启用了web安全以阻止访问所有(如下所示),并且我有一个链接到css文件/styles.css
的login.jsp
页面
当我访问任何URL时,我被重定向到login.jsp页面
问题是:
(1) 登录页面上没有使用CSS样式,可能是因为styles.CSS
被认为是受保护的资源,我还没有登录
(2) 使用用户名和密码成功登录后,我将被引导到style.css文件(该文件在浏览器中显示为纯文本)。我猜这是因为指向css文件的链接被认为是最近请求的受保护资源,所以它假设这就是我想要去的地方
如果我将CSS内容复制并粘贴到JSP中,这两个问题都会消失,但是我将CSS放在两个地方,style.CSS和login.JSP
我该如何解决这个问题?是否有一种方法可以让我“白名单”*.css文件不受保护。我是否必须为要保护的特定类型定义不同的安全约束
以下是my web.xml中的当前安全约束:
<security-constraint>
<display-name>name</display-name>
<web-resource-collection>
<web-resource-name>Restricted</web-resource-name>
<url-pattern>/*</url-pattern>
<http-method>GET</http-method>
<http-method>POST</http-method>
</web-resource-collection>
<auth-constraint>
<role-name>APP_USER</role-name>
</auth-constraint>
<user-data-constraint>
<transport-guarantee>NONE</transport-guarantee>
</user-data-constraint>
</security-constraint>
名称
受限制的
/*
得到
邮递
应用程序用户
没有一个
这就是我在JSP中链接CSS的方式:
<head>
<LINK REL=StyleSheet HREF="styles.css" TYPE="text/css" MEDIA="screen" />
</head>
非常感谢您的帮助
Rob您可以在保护所有内容后禁用css和图像的安全性
<security-constraint>
<display-name>name</display-name>
<web-resource-collection>
<web-resource-name>Restricted</web-resource-name>
<url-pattern>/*</url-pattern>
<http-method>GET</http-method>
<http-method>POST</http-method>
</web-resource-collection>
<auth-constraint>
<role-name>APP_USER</role-name>
</auth-constraint>
<user-data-constraint>
<transport-guarantee>NONE</transport-guarantee>
</user-data-constraint>
</security-constraint>
<security-constraint><!--Exclude css and images here -->
<web-resource-collection>
<web-resource-name>Exclude from Security</web-resource-name>
<url-pattern>/images/*</url-pattern><!-- No security for images -->
<url-pattern>/css/*</url-pattern><!-- No security for css -->
</web-resource-collection>
</security-constraint>
名称
受限制的
/*
得到
邮递
应用程序用户
没有一个
从安全中排除
/图像/*
/css/*