我寫到這裏,因爲我無法找到一個明確的答案,我的問題:春季安全訪問的請求,不預認證,從遠程訪問
我的項目是使用Spring MVC和Spring Security的。我很好地安裝了一個Web應用程序(當然使用Java)。我可以通過post和get方法訪問,但只能在用戶通過Spring Security的常用形式連接後才能訪問。
從目前來看,用戶在這樣的一個地址,一個請求:
../../get.request?request=getListCommand
其中get.request是Spring MVC的一個映射。只有在用戶通過身份驗證後才能啓用此訪問權限!
我需要做的:添加的可能性可以直接訪問這個請求,沒有以前已認證,使用的地址是這樣一個例子:
http://123.123.123.123:123/get.request?request=getListCommand&j_password=myPassword&j_username=myName
或
same thing with the post protocol and the params given (request=getListCommand, j_password=myPassword, j_username=myName)
當然,認證必須在先前完成請求並將結果發回。
我在很多網站或直接在Spring安全網站上搜索過。他們談論過濾鏈接,自己的用戶名認證,RMI;但我並沒有真正找到一個完整的例子來完成我上面介紹的內容。
謝謝任何人都可以幫助我。
PS:我使用所有默認或春季安全(無風水」風格:-))
這裏是我的SECURIT背景下的XML文件
<http realm="NexCap Up"
auto-config="true"
access-denied-page="/www/jsp/authentication/accessDenied.jsp"
create-session="always"
disable-url-rewriting="true">
<port-mappings>
<port-mapping http="8084" https="8443"/>
</port-mappings>
<intercept-url pattern="/www/jsp/authentication/connexion.jsp"
access='IS_AUTHENTICATED_ANONYMOUSLY' requires-channel="https"/>
<intercept-url pattern="/www/jsp/authentication/connexionFailed.jsp"
access='IS_AUTHENTICATED_ANONYMOUSLY' />
<intercept-url pattern="/www/jsp/authentication/applicationExit.jsp"
access='IS_AUTHENTICATED_ANONYMOUSLY' />
<intercept-url
pattern="/get.Request"
method="GET"
access="ROLE_REMOTE" />
<intercept-url
pattern="/post.Request"
method="POST"
access="ROLE_REMOTE" />
<intercept-url pattern="/**"
access="ROLE_REMOTE,ROLE_SCRIPT" />
<form-login
authentication-failure-url="/www/jsp/authentication/connexionFailed.jsp"
login-page="/www/jsp/authentication/connexion.jsp"
default-target-url="/www/jsp/index.jsp"
always-use-default-target="true"/>
<logout
logout-success-url="/www/jsp/authentication/applicationExit.jsp"
invalidate-session="true"/>
<session-management
invalid-session-url="/www/jsp/authentication/invalidSession.jsp"
session-authentication-error-url = "/www/jsp/authentication/authentificationError.jsp"
session-fixation-protection="none">
<!-- Sessions concurrentes -->
<concurrency-control
error-if-maximum-exceeded="false"
expired-url="/www/jsp/authentication/sessionExpired.jsp"
max-sessions="1" />
</session-management>
</http>
最簡單的配置和的部分關於春天的安全
<security-constraint>
<web-resource-collection>
<web-resource-name>Security</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
<filter>
<display-name>springSecurityFilterChain</display-name>
<filter-name>springSecurityFilterChain</filter-name>
<filter-class>
org.springframework.web.filter.DelegatingFilterProxy
</filter-class>
<filter-mapping>
<filter-name>springSecurityFilterChain</filter-name>
<url-pattern>/*</url-pattern>
web.xml文件
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/spring/secu-config.xml
</param-value>
將您的密碼放在URL中是一個可怕的想法,因爲許多Web服務器將寫URLS來訪問日誌。 – ams
這不是公共網絡,而是內部網。 – user954156
即使它在Intranet上不安全,某人可能站在登錄人員的旁邊,並在url中查看密碼,但很多人對不同的系統使用相同的密碼,所以您確實使用戶不安全。至少應該將用戶名和密碼推入http標題中。用戶也會通過即時消息和電子郵件剪切和粘貼網址,這可能會不經意間造成問題。你想讓一些高級經理使用你的應用程序變得生氣,因爲他通過電子郵件發送了一個鏈接,並且泄露了他的用戶名/密碼 – ams