基于Maven的spring_security入門

配置文件的修改點沒什么變化,可以參考:http://blog.csdn.net/ouitiken/article/details/8830505

pom.xml的依賴參考:

<dependencies><!-- Commons --><dependency><groupId>commons-dbcp</groupId><artifactId>commons-dbcp</artifactId><version>1.4</version></dependency><!-- Log --><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version></dependency><!-- Struts2 --><dependency><groupId>org.freemarker</groupId><artifactId>freemarker</artifactId><version>2.3.18</version></dependency><dependency><groupId>org.apache.struts</groupId><artifactId>struts2-core</artifactId><version>2.3.16.3</version></dependency><dependency><groupId>org.apache.struts</groupId><artifactId>struts2-spring-plugin</artifactId><version>2.3.16.3</version></dependency><!-- Spring --><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>3.2.8.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><version>3.2.8.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-beans</artifactId><version>3.2.8.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>3.2.8.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context-support</artifactId><version>3.2.8.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-expression</artifactId><version>3.2.8.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>3.2.8.RELEASE</version></dependency><dependency><groupId>org.springframework.security</groupId><artifactId>spring-security-core</artifactId><version>3.2.4.RELEASE</version></dependency><dependency><groupId>org.springframework.security</groupId><artifactId>spring-security-web</artifactId><version>3.2.4.RELEASE</version></dependency><dependency><groupId>org.springframework.security</groupId><artifactId>spring-security-config</artifactId><version>3.2.4.RELEASE</version></dependency><!-- Mybatis --><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.0.6</version></dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>1.0.2</version></dependency><!-- Database --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.31</version></dependency></dependencies>

接下去就是spring-security的實現了

1. 修改web.xml

加入spring-security的過濾器,切忌必須加在struts2的過濾器前面。

<?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_2_5.xsd"xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"id="WebApp_ID" version="2.5"><display-name>SpringSecurityPrj</display-name><context-param><param-name>contextConfigLocation</param-name><param-value>classpath:applicationContext*.xml</param-value></context-param><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><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list>
</web-app>

接下來編寫的是applicationContext-security.xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns="http://www.springframework.org/schema/security"xmlns:beans="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-3.0.xsdhttp://www.springframework.org/schema/securityhttp://www.springframework.org/schema/security/spring-security-3.2.xsd"><!-- 自動配置模式,攔截所有請求,有ROLE_USER才可以通過 --><http auto-config="true"><intercept-url pattern="/**" access="ROLE_USER" /></http><!-- 認證管理器。用戶名密碼都集成在配置文件中 --><authentication-manager><authentication-provider><user-service><user name="sharp" password="sharp" authorities="ROLE_USER" /></user-service></authentication-provider></authentication-manager>
</beans:beans>

另外我新建了一個index.jsp文件,作用是登錄成功后返回到index.jsp頁面:

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>登錄首頁</title>
</head>
<body><span color="red">登錄成功!</span>
</body>
</html>

當我們在瀏覽器地址欄里輸入下面的url:

http://localhost:8080/SpringSecurityPrj/

我們就可以再瀏覽器里看到用戶登錄界面:

?呵呵,內置的登錄頁面,挺好玩的。沒有使用過springsecurity可能還沒發現我在那里配置用戶名和密碼吧,看下面一段代碼,這里就是用戶名和密碼:

<user name="sharp"?password="sharp"?authorities="ROLE_USER"/>

測試一:

我們錄入用戶名:admin;密碼:admin,然后點擊提交查詢,最終頁面如下:

登錄失敗了哦!

測試二:我們錄入用戶名:sharp;密碼:sharp;如下圖:

點擊提交查詢后,頁面如下:

?

頁面跳轉到index.jsp頁面,登錄成功了。

轉載于:https://www.cnblogs.com/longshiyVip/p/5055060.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/375264.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/375264.shtml
英文地址,請注明出處:http://en.pswp.cn/news/375264.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

使用Vitamio打造自己的Android萬能播放器(5)——在線播放(播放優酷視頻)

前言 為了保證每周一篇的進度&#xff0c;又由于Vitamio新版本沒有發布&#xff0c; 決定推遲本地播放的一些功能&#xff08;截圖、視頻時間、尺寸等&#xff09;&#xff0c;跳過直接寫在線播放部分的章節。從Vitamio的介紹可以看得出&#xff0c;其支持http、m3u8等多種網絡…

20個新鮮出爐的網站模板【HTML PSD】

這里給大家分享20 個新鮮出爐的免費網站模板。這些設計元素將成為你下一個項目的重要素材&#xff0c;可以幫你節省很多的時間。與往常一樣&#xff0c;我們經常漫游網絡&#xff0c;尋找最好的資源&#xff0c; HTML、CSS 和 PSD 等等&#xff0c;記得關注啊。 您可能感興趣的…

位運算總結(百科)

位運算 程序中的所有數在計算機內存中都是以二進制的形式儲存的。位運算就是直接對整數在內存中的二進制位進行操作。 位運算 - 定義 在很多系統程序中常要求在位(bit)一級進行運算或處理。&#xff23;語言提供了位運算的功能&#xff0c; 這使得&#xff23;語言也能像匯編語…

歸檔(轉)

如果是自定義類型的歸檔和解檔&#xff0c;是按以下步驟實現如果不是自定義類型&#xff0c;直接第四步就可以。一、創建一個類User二、在User.h中遵循NSCoding協議 #import <Foundation/Foundation.h> interface User : NSObject<NSCoding> { int _userAge;//例子…

相遇

CPU直接識別的唯一語言是機器語言,為了克服機器語言的缺點,便將機器指令用便于記憶、并能描述指令功能的符號來表示稱為指令助記符簡稱助記符 匯編語言由匯編指令,偽指令,和其它符號組成 匯編指令:機器碼的助記符,有對應的機器碼 偽指令:沒有對應的機器碼由編譯器執行 其它符號…

相識

編譯器&#xff1a;MASM 調試程序&#xff1a;DEBUG 編輯器&#xff1a;EditPlus

MySQL show命令的用法

show tables或show tables from database_name; // 顯示當前數據庫中所有表的名稱show databases; // 顯示mysql中所有數據庫的名稱show columns from table_name from database_name; 或show columns from database_name.table_name; // 顯示表中列名稱show grants for user_n…

怎么用代碼制作WordPress的歸檔頁面

先看看效果&#xff0c;這個是我網站的歸檔頁面&#xff1a;http://www.shenjieblog.com/archives 其實WordPress自帶了一個歸檔的功能&#xff0c;但是只能顯示在網頁中的某一個部分&#xff0c;但是我想單獨制作一個歸檔頁面&#xff0c;因為看見很多網站都有這個&#xff0c…

【web必知必會】—— 使用DOM完成屬性填充

本文介紹了使用DOM的簡單方法實現動態加載圖片的功能。 前文介紹了&#xff1a; 1 DOM四個常用的方法 首先看一下效果&#xff0c;初始時是一個相冊&#xff0c;可以點擊導航&#xff0c;切換圖片&#xff0c;并切換下方顯示內容&#xff1a; 點擊house&#xff0c;可以動態的切…

地址總線 數據總線

地址總線&#xff1a; CPU地址總線的寬度決定了它能尋址多少個內存單元地址,一個CPU有N根地址總線那么它的尋址能力為2^N次方。8086CPU地址總線寬度為20可尋址2^20次方個內存單元地址大小為1M。80386地址總線寬度為32可尋址內存為4GB 數據總線&#xff1a; CPU與存儲器之間的數…

Spring事務配置方式(一) 攔截器方式配置

一、使用<tx:advice>和<aop:config>配置事務 <!-- 配置事務管理器 --><bean id"transactionManager" class"org.springframework.jdbc.datasource.DataSourceTransactionManager"><property name"dataSource" ref&qu…

8086寄存器組

寄存器(14個)|AX,BX,CX,DX,SP,BP,SI,DI,IP,FLAG,CS,DS,SS,ES| >通用寄存器 數據寄存器(存放一般數據)AX (AH,AL) | BX (BH,BL) | CX (CH,CL) | DX (DH,DL) 指針寄存器 堆棧指針 基址指針SP BP (SS:SP) 變址寄存器 源地址 目的地址SI …

學習動態性能表(10)--v$session_longops

學習動態性能表 第十篇--V$SESSION_LONGOPS 2007.6.7 本視圖顯示運行超過6秒的操作的狀態。包括備份&#xff0c;恢復&#xff0c;統計信息收集&#xff0c;查詢等等。 要監控查詢執行進展狀況&#xff0c;你必須使用cost-based優化方式&#xff0c;并且&#xff1a; 設置TIME…

存儲器

存儲器以字節為單位存儲信息,一個存儲單元存儲一個字節。一個字需要用兩個連續的存儲單元。 每一個存儲單元有唯一的地址&#xff0c;稱為存儲單元地址。

JDBC常用API小結

建立數據庫鏈接的三種方式&#xff1a; package com.victor_01;import java.sql.Connection; import java.sql.Driver; import java.sql.DriverManager; import java.sql.SQLException; import java.util.Properties;import org.junit.Test;public class Test1 {private String…

學習動態性能表(12)--v$db_object_cache

學習動態性能表 第12篇--V$DB_OBJECT_CACHE 2007.6.4 本視圖提供對象在library cache(shared pool)中對象統計&#xff0c;提供比v$librarycache更多的細節&#xff0c;并且常用于找出shared pool中的活動對象。 v$db_object_cache中的常用列&#xff1a; OWNER&#xff1a;對…

Java Platform Standard Edition 8 Documentation

下面這個圖挺有用的&#xff0c;收藏一下。Oracle has two products that implement Java Platform Standard Edition (Java SE) 8: Java SE Development Kit (JDK) 8 and Java SE Runtime Environment (JRE) 8.JDK 8 is a superset of JRE 8, and contains everything that is…

清除端口占用的程序

程序啟動的過程中&#xff0c;有時候會提示“端口被占用”。如何快速的找到占用該端口的進程&#xff1f;網上有很多種方法&#xff0c;這里自己整理了下&#xff0c;使用DOS命令查詢端口并清除端口占用的程序&#xff0c;做個筆記。 windows系統下DOS命令&#xff1a; 1.查看端…

Python進階06 循環對象

Python進階06 循環對象 作者&#xff1a;Vamei 出處&#xff1a;http://www.cnblogs.com/vamei 歡迎轉載&#xff0c;也請保留這段聲明。謝謝&#xff01; 這一講的主要目的是為了大家在讀Python程序的時候對循環對象有一個基本概念。 循環對象的并不是隨著Python的誕生就存在的…