繁体   English   中英

Spring Security hasRole()提供错误403-访问被拒绝

[英]Spring security hasRole() giving Error 403 - Access is denied

我正在尝试查看仅管理员可以查看的特定页面,但是每次发出请求时都会出现错误。 它似乎与我的安全上下文文件中的hasRole()一起使用。

该错误仅显示HTTP状态403-当我发出查看admin jsp页面的请求时,访问被拒绝

安全的context.xml:

<security:http use-expressions="true">
    <security:intercept-url pattern="/admin" access="hasAnyRole('admin')" />
    <security:form-login login-page="/login"
        authentication-failure-url="/login?error=true" />
    <security:logout logout-success-url="/loogedout" />
    <security:intercept-url pattern="/createoffer" access="isAuthenticated()" />
    <security:intercept-url pattern="/docreate" access="isAuthenticated()" />
    <security:intercept-url pattern="/offercreated" access="isAuthenticated()" />
    <security:intercept-url pattern="/" access="permitAll" />
    <security:intercept-url pattern="/loggedout" access="permitAll" />
    <security:intercept-url pattern="/newaccount" access="permitAll" />
    <security:intercept-url pattern="/createaccount" access="permitAll" />
    <security:intercept-url pattern="/accountcreated" access="permitAll" />
    <security:intercept-url pattern="/static/**" access="permitAll" />
    <security:intercept-url pattern="/login" access="permitAll" />
    <security:intercept-url pattern="/offers" access="permitAll" />
    <security:intercept-url pattern="/**" access="denyAll" />
</security:http>

我数据库中的两个表是用户(用户名,电子邮件,已启用,密码)和权限(用户名,权限)。

谁能建议我是什么错误或如何解决?

请确认以管理员身份登录时,您确实具有管理员角色。 请查看以下代码的输出:
getCurrentUser().getAuthorities(); 在允许所有人的任何流量中。 这将仅列出您登录的用户具有的所有角色。

public UserInfo getCurrentUser() {
        UserInfo userInfo = null;
        SecurityContext securityContext = SecurityContextHolder.getContext();
        if (securityContext != null && null != securityContext.getAuthentication()) {
            Object principal = securityContext.getAuthentication().getPrincipal();
            if (UserInfo.class.isAssignableFrom(principal.getClass())) {
                userInfo = (UserInfo) principal;
            }
        }
        return userInfo;
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM