日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

Spring Security登录

發(fā)布時間:2023/12/3 javascript 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring Security登录 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1.簡介

本文將重點介紹使用Spring Security登錄 。 我們將在前面的簡單Spring MVC示例的基礎(chǔ)上構(gòu)建,因為這是設置Web應用程序和登錄機制的必要部分。

2. Maven依賴

要將Maven依賴項添加到項目中,請參閱Spring Security with Maven文章 。 標準的spring-security-web和spring-security-config都是必需的。

3.

web.xml中的Spring Security配置很簡單–僅向標準Spring MVC web.xml中添加了一個額外的過濾器:

<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"><display-name>Spring Secured Application</display-name><!-- Spring MVC --><servlet><servlet-name>mvc</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>mvc</servlet-name><url-pattern>/</url-pattern></servlet-mapping><context-param><param-name>contextClass</param-name><param-value>org.springframework.web.context.support.AnnotationConfigWebApplicationContext</param-value></context-param><context-param><param-name>contextConfigLocation</param-name><param-value>org.baeldung.spring.web.config</param-value></context-param><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><!-- Spring Security --><filter><filter-name>springSecurityFilterChain</filter-name><filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class></filter><filter-mapping><filter-name>springSecurityFilterChain</filter-name><url-pattern>/*</url-pattern></filter-mapping></web-app>

過濾器-DelegatingFilterProxy-簡單地委派給Spring托管的bean – FilterChainProxy-它本身可以從完整的Spring bean生命周期管理等中受益。

2. Spring Security配置

Spring配置大部分是用Java編寫的,但是Spring Security配置尚不支持完整的Java,并且在大多數(shù)情況下仍需要為XML。 目前正在努力為Spring Security添加基于Java的配置 ,但這還不成熟。

整個項目使用的是Java配置,因此需要通過Java @Configuration類導入XML配置文件:

@Configuration @ImportResource({ "classpath:webSecurityConfig.xml" }) public class SecSecurityConfig {public SecSecurityConfig() {super();} }

Spring Security XML配置– webSecurityConfig.xml :

<?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"xsi:schemaLocation="http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.1.xsdhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd"><http use-expressions="true"><intercept-url pattern="/login*" access="isAnonymous()" /><intercept-url pattern="/**" access="isAuthenticated()"/><form-login login-page='/login.html' default-target-url="/homepage.html" authentication-failure-url="/login.html?error=true" /><logout logout-success-url="/login.html" /></http><authentication-manager><authentication-provider><user-service><user name="user1" password="user1Pass" authorities="ROLE_USER" /></user-service></authentication-provider></authentication-manager> </beans:beans>

2.1。 <intercept-url>

我們允許對/ login進行匿名訪問,以便用戶可以進行身份??驗證。 我們也在確保其他一切。

請注意, <intercept-url>元素的順序很重要-首先需要制定更具體的規(guī)則,然后是更通用的規(guī)則。

2.2。 <表單登錄>

  • 登錄頁面 – 自定義登錄頁面
  • default-target-url-成功登錄后的登錄頁面
  • authentication-failure-url –登錄失敗后的登錄頁面

2.3。 <身份驗證管理器>

身份驗證提供程序由簡單的內(nèi)存實現(xiàn)(特別是InMemoryUserDetailsManager )支持,以純文本配置。 它僅在Spring 3.1及更高版本中存在,并且在尚不需要完全持久性機制的情況下,可用于快速原型制作。

3.登錄表單

登錄表單頁面將使用簡單的機制向Spring MVC注冊,該機制將視圖名稱映射到URL ,而無需在兩者之間使用顯式控制器:

registry.addViewController("/login.html");

當然,這對應于login.jsp :

<html> <head></head> <body><h1>Login</h1><form name='f' action="j_spring_security_check" method='POST'><table><tr><td>User:</td><td><input type='text' name='j_username' value=''></td></tr><tr><td>Password:</td><td><input type='password' name='j_password' /></td></tr><tr><td><input name="submit" type="submit" value="submit" /></td></tr></table></form> </body> </html>

Spring登錄表單具有以下相關(guān)工件:

  • j_spring_security_check –表單在其中張貼以觸發(fā)身份驗證過程的URL
  • j_username –用戶名
  • j_password –密碼

4.進一步配置Spring登錄

當我們在上面介紹了Spring Security XML Configuration時,我們簡要討論了登錄機制的一些配置–現(xiàn)在讓我們詳細介紹一下。

覆蓋Spring Security中大多數(shù)默認設置的原因之一是隱藏了應用程序受Spring Security保護的事實,并最大程度地減少了潛在的攻擊者對應用程序的了解。

完全配置后, <form-login>元素如下所示:

<form-login login-page='/login.html' login-processing-url="/perform_login" default-target-url="/homepage.html"authentication-failure-url="/login.html?error=true" always-use-default-target="true"/>

4.1。 登錄頁面

通過登錄頁面屬性o n <form-login>配置自定義登錄頁面:

login-page='/login.html'

如果未指定,則使用默認URL – spring_security_login –并且Spring Security將在該URL生成一個非常基本的登錄表單。

4.2。 登錄的POST URL

Spring Login將在其上觸發(fā)觸發(fā)身份驗證過程的默認URL是/ j_spring_security_check 。

可以通過<form-login>上的login-processing-url屬性覆蓋此URL:

login-processing-url="/perform_login"

覆蓋此默認URL的一個很好的理由是隱藏一個事實,即該應用程序?qū)嶋H上已通過Spring Security進行了保護-該信息不應在外部使用。

4.3。 成功登錄頁面

成功的登錄過程之后,用戶將被重定向到頁面–默認情況下,頁面是Web應用程序的根目錄。

這可以通過<form-login>上的default-target-url屬性來覆蓋:

default-target-url="/homepage.html"

如果always-use-default-target設置為true,則始終將用戶重定向到此頁面。 如果該屬性設置為false,則在升級用戶進行身份驗證之前,該用戶將被重定向到他們要訪問的上一頁。

4.4。 登陸頁面失敗

與登錄頁面相同,登錄失敗頁面默認由Spring Security在/ spring_security_login?login_error生成。

這可以通過<form-login>上的authentication-failure-url屬性來覆蓋:

authentication-failure-url="/login.html?error=true"

5.結(jié)論

在這個Spring登錄示例中,我們配置了一個簡單的身份驗證過程–我們討論了Spring Security登錄表單,Security XML配置以及名稱空間中可用的一些更高級的自定義。

可以在github項目中找到此Spring Login教程的實現(xiàn)–這是一個基于Eclipse的項目,因此應易于導入和運行。

當項目在本地運行時,可以在以下位置訪問示例html:

  • http:// localhost:8080 / spring-security-login / login.html

參考: Spring安全表單,從我們的JCG合作伙伴 Eugen Paraschiv 登錄到baeldung博客。

翻譯自: https://www.javacodegeeks.com/2013/05/spring-security-login.html

總結(jié)

以上是生活随笔為你收集整理的Spring Security登录的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。