Java Spring Security有时行为怪异
我正在使用SpringSecurity来实现我的应用程序的登录功能。大多数情况下,SpringSecurity都像预期的那样工作良好。但有时它会变得疯狂。在那个时候,一些没有我设计的登录页面正在打开一个用户名和密码文本框。当我从未完全形成的登录页面登录时,我的主页上的一些随机png或js文件被打开。然后我将从url中删除相应的js或png部分,然后按enter键。届时,我的完整登录页面将被打开,应用程序将按预期顺利运行。我不知道我的春季安全部分是怎么回事。有人请帮忙。下面是我对spring security的配置Java Spring Security有时行为怪异,java,spring-security,Java,Spring Security,我正在使用SpringSecurity来实现我的应用程序的登录功能。大多数情况下,SpringSecurity都像预期的那样工作良好。但有时它会变得疯狂。在那个时候,一些没有我设计的登录页面正在打开一个用户名和密码文本框。当我从未完全形成的登录页面登录时,我的主页上的一些随机png或js文件被打开。然后我将从url中删除相应的js或png部分,然后按enter键。届时,我的完整登录页面将被打开,应用程序将按预期顺利运行。我不知道我的春季安全部分是怎么回事。有人请帮忙。下面是我对spring se
<http auto-config="true" use-expressions="true">
<!-- <intercept-url pattern="/loadISearch" access="ROLE_ADMIN" /> -->
<intercept-url pattern="/" access="permitAll" />
<intercept-url pattern="/accessdenied**" access="permitAll" />
<intercept-url pattern="/**" access="hasRole('ROLE_ADMIN')" />
<form-login login-page="/" default-target-url="/dashboard1" authentication-failure-url="/accessdenied" />
<logout invalidate-session="true" logout-success-url="/" />
</http>
我猜发生的情况如下:
- 您的登录页面正在使用CSS和图像进行样式设置
- Spring Security拒绝访问您的CSS/图像文件,因为您尚未授予访问权限。由于这个原因,登录页面看起来与您期望的不同,并且无法识别
- 有时登录页面看起来很正常,因为浏览器缓存了CSS/图像。因为浏览器缓存了CSS/图像,所以它没有向容器请求资源,Spring安全性无法保护它,所以登录页面会按预期呈现
- Spring Security的默认策略是保存您在进行身份验证之前发出的最后一个请求,并将用户发送到那里。由于您的登录页面正在向受保护的资源(即CSS、图像等)发出附加请求,因此在验证后,您将被发送到这些页面。由于请求是异步的,因此结果可能是不确定的
<http auto-config="true" use-expressions="true">
<intercept-url pattern="/resources/**" access="permitAll" />
<intercept-url pattern="/" access="permitAll" />
<intercept-url pattern="/accessdenied**" access="permitAll" />
<intercept-url pattern="/**" access="hasRole('ROLE_ADMIN')" />
<form-login login-page="/"
default-target-url="/dashboard1"
authentication-failure-url="/accessdenied" />
<logout invalidate-session="true" logout-success-url="/" />
</http>
我猜发生的情况如下:
- 您的登录页面正在使用CSS和图像进行样式设置
- Spring Security拒绝访问您的CSS/图像文件,因为您尚未授予访问权限。由于这个原因,登录页面看起来与您期望的不同,并且无法识别
- 有时登录页面看起来很正常,因为浏览器缓存了CSS/图像。因为浏览器缓存了CSS/图像,所以它没有向容器请求资源,Spring安全性无法保护它,所以登录页面会按预期呈现
- Spring Security的默认策略是保存您在进行身份验证之前发出的最后一个请求,并将用户发送到那里。由于您的登录页面正在向受保护的资源(即CSS、图像等)发出附加请求,因此在验证后,您将被发送到这些页面。由于请求是异步的,因此结果可能是不确定的
<http auto-config="true" use-expressions="true">
<intercept-url pattern="/resources/**" access="permitAll" />
<intercept-url pattern="/" access="permitAll" />
<intercept-url pattern="/accessdenied**" access="permitAll" />
<intercept-url pattern="/**" access="hasRole('ROLE_ADMIN')" />
<form-login login-page="/"
default-target-url="/dashboard1"
authentication-failure-url="/accessdenied" />
<logout invalidate-session="true" logout-success-url="/" />
</http>