2015-01-16 58 views
0

如何限制REST URL在瀏覽器中的訪問,任何人都可以引導我在security.xml中做什麼必要的更改。我的web應用程序在Spring MVC框架上運行。限制瀏覽器中REST URL的訪問

<?xml version="1.0" encoding="UTF-8"?> 
<beans:beans xmlns="http://www.springframework.org/schema/security"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:beans="http://www.springframework.org/schema/beans" xmlns:p="http://www.springframework.org/schema/p" 
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 pattern="/images/**" security="none" /> 
<http pattern="/styles/**" security="none" /> 
<http pattern="/scripts/**" security="none" /> 
<http pattern="/assets/**" security="none" /> 


<http auto-config="true"> 
    <intercept-url pattern="/app/admin/**" access="ROLE_ADMIN" /> 
    <intercept-url pattern="/app/passwordHint*" access="ROLE_ANONYMOUS,ROLE_ADMIN,ROLE_USER" /> 
    <intercept-url pattern="/app/requestRecoveryToken*" access="ROLE_ANONYMOUS,ROLE_ADMIN,ROLE_USER, ROLE_PHYSICIAN, ROLE_PRACTICE_STAFF" /> 
    <intercept-url pattern="/app/updatePassword*" access="ROLE_ANONYMOUS,ROLE_ADMIN,ROLE_USER, ROLE_PHYSICIAN, ROLE_PRACTICE_STAFF" /> 
    <intercept-url pattern="/app/signup*" access="ROLE_ADMIN" /> 
    <intercept-url pattern="/app/practice*" access="ROLE_ADMIN"/> 
    <!-- <intercept-url pattern="/app/patientReports*" access="ROLE_ADMIN"/> -->   
    <intercept-url pattern="/app/mediaFile/**" access="ROLE_ANONYMOUS"/> 
    <intercept-url pattern="/app/**" access="ROLE_ADMIN, ROLE_USER, ROLE_PHYSICIAN, ROLE_PRACTICE_STAFF" /> 
    <form-login login-page="/login" authentication-failure-url="/login?error=true" login-processing-url="/j_security_check" /> 
    <remember-me user-service-ref="userDao" key="e37f4b31-0c45-11dd-bd0b-0800200c9a66" /> 
</http> 

<authentication-manager> 
    <authentication-provider user-service-ref="userDao"> 
     <password-encoder ref="passwordEncoder"> 
     </password-encoder> 
    </authentication-provider> 
</authentication-manager> 


<!-- Override the default password-encoder (BCrypt) by uncommenting the following and changing the class --> 
<!-- <bean id="passwordEncoder" class="org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder"/> --> 

<global-method-security> 
    <protect-pointcut expression="execution(* *..service.UserManager.getUsers(..))" access="ROLE_ADMIN" /> 
    <protect-pointcut expression="execution(* *..service.UserManager.removeUser(..))" access="ROLE_ADMIN" /> 
</global-method-security> 

回答

0

你看了Spring security manual

您需要限制對特定角色的其餘URL的訪問。你如何通過用戶獲得這些角色取決於你的設置。 對於REST調用,您可能不希望表單登錄,但需要基本身份驗證。