簡體   English   中英

在Spring Security中訪問特定用戶的特定URL

[英]access specific URL for specific user in spring security

我在應用程序中有兩個角色,一個角色是供訪客查看數據,另一個角色是admin。在管理頁面中,管理員可以編輯數據,在查看頁面中,訪客角色可以查看數據。 當我嘗試訪問URL時,我可以同時看到來賓和管理員的頁面視圖和管理,但是我希望來賓不能訪問管理頁面。

以下是我的春季安全文件:

<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>

以下是我的控制器類:

@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')" />

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM