gpt4 book ai didi

java - 在 Spring Security 中访问特定用户的特定 URL

转载 作者:行者123 更新时间:2023-12-02 02:59:52 25 4
gpt4 key购买 nike

我的应用程序中有两个角色,一个角色是访客查看数据,另一个角色是管理员。在管理页面中,管理员可以编辑数据,在查看页面中访客角色可以查看数据。当我尝试访问 URL 时,我可以看到访客和管理员的页面 View 和管理,但我希望访客不应该访问管理页面。

以下是我的 Spring 安全文件:

<b:beans xmlns="http://www.springframework.org/schema/security"
xmlns:b="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security.xsd">

<http auto-config="true" use-expressions="true">
<!-- Adds Support for basic authentication -->
<intercept-url pattern="/admin" access="hasAnyRole('ROLE_USER')" />
<!-- <http-basic /> -->
<form-login login-page="/login" authentication-failure-url="/loginFailed" default-target-url="/view" />
<logout />
</http>
<authentication-manager>
<authentication-provider>
<user-service>
<user name="leader" password="1234" authorities="ROLE_ADMIN" />
<user name="sudheer" password="1234" authorities="ROLE_USER" />
</user-service>
</authentication-provider>
</authentication-manager>
</b:beans>

以下是我的 Controller 类:

@RequestMapping(value="/admin", method=RequestMethod.GET)
public ModelAndView admin(){

ModelAndView model = new ModelAndView();

List<ApplicationTO> list=application.getApplicationList();
model.addObject("applicationList", list);
model.setViewName("admin");

return model;

}

@RequestMapping(value="/view", method=RequestMethod.GET)
public ModelAndView view(){

ModelAndView model = new ModelAndView();
List<ApplicationTO> list=application.getApplicationList();
model.addObject("applicationList", list);
model.setViewName("view");

return model;

}

最佳答案

请更改 - <intercept-url pattern="/admin" access="hasAnyRole('ROLE_USER')" />从您的代码到

<intercept-url pattern="/admin/**" access="hasRole('ROLE_ADMIN')" />

关于java - 在 Spring Security 中访问特定用户的特定 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42514891/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com