【发布时间】:2015-12-03 16:50:58
【问题描述】:
以下是我的安全配置文件中的配置:
<security:http use-expressions="true">
<security:intercept-url pattern="/adminarea"
access="hasRole('admin')" />
<security:intercept-url pattern="/logincheck"
access="permitAll" />
<security:intercept-url pattern="/newaccount"
access="permitAll" />
<security:intercept-url pattern="/createnewaccount"
access="permitAll" />
<security:intercept-url pattern="/home"
access="isAuthenticated()" />
<security:intercept-url pattern="/static/**"
access="permitAll" />
<security:intercept-url pattern="/" access="permitAll" />
<security:intercept-url pattern="/**" access="denyAll" />
<security:form-login login-page="/"
authentication-failure-url="/?error=true" default-target-url="/home" />
</security:http>
我正在使用 spring 默认登录,它工作正常。但是当我尝试访问/adminarea 时,我得到了Http Status 403 - Access is denied 错误。任何帮助。
已编辑:AuthenticationManager
<security:authentication-manager>
<security:authentication-provider>
<security:jdbc-user-service
data-source-ref="dataSource" />
</security:authentication-provider>
</security:authentication-manager>
JSP 上的代码:
<sec:authentication property="principal"/>
<sec:authorize access="hasRole('admin')">
<a href="${pageContext.request.contextPath}/adminarea">Admin Area</a>
</sec:authorize>
第一个标签输出如下
rg.springframework.security.core.userdetails.User@6d8e08d5:用户名:zubi@yahoo.com;密码保护];启用:真; AccountNonExpired:真;凭据非过期:真; AccountNonLocked:真;授予权限:管理员
第二个标签不输出任何内容。
【问题讨论】:
-
我猜是
<security:intercept-url pattern="/**" access="denyAll" />这个代码导致错误。 -
@Amitsingh 我尝试删除它...但仍然是同样的错误
-
请出示您的 Authentication Manager 和 UserDetailsService
-
@shazin 我更新了帖子。我使用的是spring默认身份验证,是否必须实现 UserDetailsService ?
-
您的 Spring Security 版本是什么?如果它
标签: java spring-security