1. 程式人生 > >Spring security認證與授權(一)

Spring security認證與授權(一)

安全一直是 Web 應用開發中非常重要的一個方面。從安全的角度來說,需要考慮使用者認證和授權兩個方面。為 Web 應用增加安全方面的能力並非一件簡單的事情,需要考慮不同的認證和授權機制。Spring Security 為使用 Spring 框架的 Web 應用提供了良好的支援。本系列將詳細介紹如何使用 Spring Security 框架為 Web 應用提供安全支援。

一般來說,Web 應用的安全性包括使用者認證(Authentication)和使用者授權(Authorization)兩個部分。使用者認證指的是驗證某個使用者是否為系統中的合法主體,也就是說使用者能否訪問該系統。使用者認證一般要求使用者提供使用者名稱和密碼。系統通過校驗使用者名稱和密碼來完成認證過程。使用者授權指的是驗證某個使用者是否有許可權執行某個操作。在一個系統中,不同使用者所具有的許可權是不同的。比如對一個檔案來說,有的使用者只能進行讀取,而有的使用者可以進行修改。一般來說,系統會為不同的使用者分配不同的角色,而每個角色則對應一系列的許可權。本系列將通過具體的示例來逐步介紹 Spring Security 的使用。

第一個例項:

第一個例子是最基本,最簡單的,我第一次接觸spring security時候覺得這個技術這是太神奇了。

首先修改web.xml:

<?xmlversion="1.0"encoding="UTF-8"?>

<web-appversion="2.5"xmlns="http://java.sun.com/xml/ns/javaee"

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee

    http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"

>

  <display-name>SpringSecurityPrj</display-name>

  <context-param>

    <param-name>contextConfigLocation</param-name>

    <param-value>

        classpath:applicationContext*.xml

    </param-value>

  </context-param>

  <!-- 宣告springSecurity,這裡其實只是一個代理

-->

  <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檔案:

<?xmlversion="1.0"encoding="UTF-8"?>

<beansxmlns="http://www.springframework.org/schema/beans"

    xmlns:sec="http://www.springframework.org/schema/security"

    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-2.5.xsd

   http://www.springframework.org/schema/security

   http://www.springframework.org/schema/security/spring-security-2.0.4.xsd">

    <!-- 自動配置模式,攔截所有請求,有ROLE_USER許可權才可以通過 -->

    <sec:httpauto-config="true">

        <sec:intercept-urlpattern="/**"access="ROLE_USER"/>

    </sec:http>

    <!-- 認證管理器。使用者名稱和密碼都整合在配置檔案中 -->

     <sec:authentication-provider>

            <sec:user-service>

                <sec:username="admin"password="123456"authorities="ROLE_USER"/>

            </sec:user-service>

    </sec:authentication-provider>

</beans>

修改index.jsp檔案,作用是登入成功後跳轉到index.jsp頁面:

<%@ page language="java"contentType="text/html; charset=UTF-8"

    pageEncoding="UTF-8"%>

<!DOCTYPEhtml PUBLIC "-//W3C//DTDHTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<metahttp-equiv="Content-Type"content="text/html; charset=UTF-8">

<title>登入首頁</title>

</head>

<body>

<spancolor="red">登入成功!</span>

</body>

</html>

http://localhost:8080/springsecurity01/spring_security_login

我們就可以再瀏覽器裡看到使用者登入介面:


這是內建的登入頁面。沒有使用過springsecurity可能還沒發現我在那裡配置使用者名稱和密碼吧,看下面一段程式碼,這裡就是使用者名稱和密碼:

<user name="admin"password="123456" authorities="ROLE_USER"/>

測試一,我們錄入錯誤的使用者名稱密碼,我輸入使用者名稱:admin;密碼:123,然後點選提交查詢,最終頁面如下:


登入失敗!

測試二:我們錄入使用者名稱:admin;密碼:123456。點選提交查詢後,頁面如下:


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

這個示例雖然很easy,需要自己做的並不多,很大都是Springsecurity提供的。接下來逐步深入。

原始碼

相關推薦

Spring security認證授權()

安全一直是 Web 應用開發中非常重要的一個方面。從安全的角度來說,需要考慮使用者認證和授權兩個方面。為 Web 應用增加安全方面的能力並非一件簡單的事情,需要考慮不同的認證和授權機制。Spring Security 為使用 Spring 框架的 Web 應用提供了良好的支

Spring Security技術棧開發企業級認證授權(十)開發簡訊驗證碼登入

簡訊登入也是一種常見的登入方式,但是簡訊登入的方式並沒有整合到Spring Security中,所以往往還需要我們自己開發簡訊登入邏輯,將其整合到Spring Security中,使用Spring Security來進行校驗。本文將介紹開發簡訊登入的方法,

Spring Security技術棧開發企業級認證授權)環境搭建

Spring Security是一個能夠為基於Spring的企業應用系統提供宣告式的安全訪問控制解決方案的安全框架。它提供了一組可以在Spring應用上下文中配置的Bean,充分利用了Spring IoC,DI(控制反轉Inversion of Contr

Spring Security技術棧開發企業級認證授權

iyu 復雜 sha 日誌 開發app 一個 核心概念 並發 自動 Spring Security技術棧開發企業級認證與授權網盤地址:https://pan.baidu.com/s/1mj8u6JQ 密碼: 92rp備用地址(騰訊微雲):https://share.weiy

Spring Security技術棧開發企業級認證授權 Spring Security開發安全的REST服務

第1章 課程導學 介紹課程內容、課程特點,使用的主要技術棧,以及學習課程所需的前置知識 1-1 導學 第2章 開始開發 安裝開發工具,介紹專案程式碼結構並搭建,基本的依賴和引數設定,開發hello world 2-1 開發環境安裝 2-2 程式碼結構介紹 2-3

Spring Security技術棧開發企業級認證授權(五)使用Filter、Interceptor和AOP攔截REST服務

一般情況,在訪問RESTful風格的API之前,可以對訪問行為進行攔截,並做一些邏輯處理,本文主要介紹三種攔截方式,分別是:過濾器Filter、攔截器Interceptor以及面向切面的攔截方式AOP。 一、使用過濾器Filter進行攔截 使用過

Spring Security技術棧開發企業級認證授權(九)開發圖形驗證碼介面

在設計登入模組的時候,圖形驗證碼基本上都是標配,本篇部落格重點介紹開發可重用的圖形驗證碼介面,該介面支援使用者自定義配置,比如驗證碼的長度、驗證碼圖形的寬度和高度等資訊。 本文的目標是開發一個圖形驗證碼介面,該驗證碼支援使用者自定義長度,以及生成圖片後

Spring Security技術棧開發企業級認證授權(八)Spring Security的基本執行原理個性化登入實現

正如你可能知道的兩個應用程式的兩個主要區域是“認證”和“授權”(或者訪問控制)。這兩個主要區域是Spring Security的兩個目標。“認證”,是建立一個他宣告的主題的過程(一個“主體”一般是指使用者,裝置或一些可以在你的應用程式中執行動作的其他系統)

Spring Security技術棧開發企業級認證授權(七)使用Swagger自動生成API文件

由於Spring Boot能夠快速開發、便捷部署等特性,相信有很大一部分Spring Boot的使用者會用來構建RESTful API。而我們構建RESTful API的目的通常都是由於多終端的原因,這些終端會共用很多底層業務邏輯,因此我們會抽象出這樣一層

認證授權Spring Security系列之認證流程解析

> 上面我們一起開始了Spring Security的初體驗,並通過簡單的配置甚至零配置就可以完成一個簡單的認證流程。可能我們都有很大的疑惑,這中間到底發生了什麼,為什麼簡單的配置就可以完成一個認證流程啊,可我啥都沒看見,沒有寫頁面,沒有寫介面。這一篇我們將深入到原始碼層面一起來了解一下spring secu

基於spring-security-oauth2搭建授權服務器()

常用 遊戲 安全性 獲取 部分 tools token 界面 作者 背景:需要API網關控制權限,單點登陸。 當前關於這方面的系統資料較少,因此大多是找尋網上零散的示例解析,結合官方文檔中的demo再加上源碼跟蹤調試來進行學習與搭建。但由於涉及的知識點較多,且零散示

Shiro學習筆記()--- 認證授權

一、簡介 Apache Shiro是一個強大且易用的Java安全框架,執行身份驗證、授權、密碼和會話管理。使用Shiro的易於理解的API,您可以快速、輕鬆地獲得任何應用程式,從最小的移動應用程式到最大的網路和企業應用程式。 主要功能 三個核心元件:Subject, Security

Spring Security詳解(認證之核心元件和服務

一直以來都特別喜歡Spring的全家桶系列,也一直想寫關於Spring Security的系列文章,接觸security從最初的Guide開始入手,到專案中的原始碼閱讀,最近又沉下心來看了幾遍文件,打算嘗試一下,把我的理解都記錄下來,寫一個較為完整的系列文章。

.net core 認證授權

前言 .net core web並不是一個非常新的架構,很多文章提及到認證與授權這個過程,但是一般都會提及到裡面的方法怎麼用的,而不是模擬一個怎樣的過程,所以我打算記錄自己的理解。 什麼是認證?我們大學畢業有學士證書和畢業證書,來證明你是一個學士。 什麼是授權,比如說你被認證是我的朋友後,你可以拿著這個身份,

詳解K8SRancher 2.0內的身份認證授權

Rancher Kubernetes 身份認證和授權 Rancher 2.0正式版已全面發布。Rancher 2.0是一個開源的Kubernetes管理平臺,為企業用戶提供Kubernetes-as-a-Service (Kubernetes即服務),並且能夠實現多Kubernetes集群的統一納

.Net Core Cookie-Based認證授權

現在 技術分享 tar mvc 技術 bsp http image In .Net Core的其中一種認證與授權模式是基於Cookie的,首先我們先創建一個.Net Core MVC 項目: 然後增加對頁面訪問的權限控制,對要訪問的頁面Conytroller增加Aut

Spring Security 認證過程

3.1 username 但是 用戶 請求 應用 並且 其它 exce 目錄 1.1 認證過程 1.2 Web應用的認證過程 1.2.1 ExceptionTranslationFilter 1.2.2 在request之間共享Sec

Spring Security原理應用

能夠 log 依賴 mov 功能 () catch word 基本 Spring Security是什麽 Spring Security是一個能夠為基於Spring的企業應用系統提供聲明式的安全訪問控制解決方案的安全框架。它提供了一組可以在Spring應用上下文中配置的Be

shiro的 認證 授權

失敗 ole info 是否 eal ipa 認證 三種方式 nlog 1,什麽是shiro Shiro是apache旗下一個開源框架,它將軟件系統的安全認證相關的功能抽取出來,實現用戶身份認證,權限授權、加密、會話管理等功能,組成了一個通用的安全認證框架。 shiro

Apache Shiro(二)——認證授權

Apache Shiro 是一個強大而靈活的開源安全框架,它乾淨利落地處理身份認證,授權,企業會話管理和加密。 Shiro 架構如下圖所示: 認證 身份認證 身份驗證:一般需要提供如身份 ID 等一些標識資訊來表明登入者的身份,如提供 email,使用者名稱/密碼來證明。在