国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

安全之劍:深度解析 Apache Shiro 框架原理與使用指南

這篇具有很好參考價值的文章主要介紹了安全之劍:深度解析 Apache Shiro 框架原理與使用指南。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

在現代軟件開發(fā)中,安全性一直是至關重要的一個方面。隨著網絡攻擊和數據泄露的不斷增加,我們迫切需要一種強大而靈活的安全框架來保護我們的應用。Shiro框架就是這樣一把利劍,它能夠輕松地集成到你的項目中,為你的應用提供可靠的安全性保護。

apache shiro,安全,apache,golang,java,go,前端,windows

Shiro框架概述

Apache Shiro是一個強大且易用的Java安全框架,提供了身份驗證、授權、密碼學和會話管理等功能。它被廣泛用于保護各種類型的應用程序,包括Web應用、RESTful服務、移動應用和大型企業(yè)級應用。使用Shiro,你可以將安全性集成到應用程序中而不必擔心復雜的實現細節(jié)。

Shiro的核心概念

在深入了解Shiro的原理之前,我們先來了解一下Shiro的一些核心概念:

  • Subject(主體):代表當前用戶,可以是一個人、設備或者其他與應用交互的實體。Subject封裝了與安全性相關的操作,如身份驗證和授權。

  • SecurityManager(安全管理器):負責管理所有Subject,是Shiro的核心。它協調各種安全組件的工作,確保安全性的全面性。

  • Realm(域):負責驗證Subject的身份,并提供與授權數據交互??梢詫ealm看作是安全數據源。

  • Authentication(身份驗證):驗證Subject的身份是否合法。通常包括用戶名密碼驗證、多因素認證等。

  • Authorization(授權):確定Subject是否有權限執(zhí)行特定的操作。授權是安全框架的另一個關鍵方面。

  • Session Management(會話管理):處理用戶的會話,確保安全地管理用戶的狀態(tài)信息。

Shiro的優(yōu)勢

Shiro的優(yōu)勢在于其簡單性和靈活性。相較于其他安全框架,Shiro采用了非常直觀的API和清晰的架構,使得開發(fā)者能夠更輕松地理解和使用。此外,Shiro的可擴展性也是其強大之處,你可以根據自己的需求輕松地定制和擴展功能。

Shiro的安裝與配置

現在,讓我們一起來了解如何在項目中引入Shiro,并進行基本的配置。在這里,我以一個基于Spring Boot的Web應用為例進行演示。

步驟1:引入Shiro依賴

首先,在你的項目中引入Shiro的依賴。如果你使用Maven,可以在pom.xml中添加以下依賴:

<dependency>
    <groupId>org.apache.shiro</groupId>
    <artifactId>shiro-spring-boot-starter</artifactId>
    <version>1.8.0</version> <!-- 請?zhí)鎿Q為最新版本 -->
</dependency>

步驟2:配置Shiro

在Spring Boot項目中,Shiro的配置通常是通過ShiroConfig類來完成的。創(chuàng)建一個ShiroConfig類,并配置相關的Bean:

@Configuration
public class ShiroConfig {

    @Bean
    public DefaultWebSecurityManager securityManager() {
        DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager();
        // 設置Realm
        securityManager.setRealm(myRealm());
        return securityManager;
    }

    @Bean
    public MyRealm myRealm() {
        return new MyRealm();
    }

    @Bean
    public ShiroFilterFactoryBean shiroFilterFactoryBean(DefaultWebSecurityManager securityManager) {
        ShiroFilterFactoryBean shiroFilter = new ShiroFilterFactoryBean();
        shiroFilter.setSecurityManager(securityManager);
        // 配置攔截規(guī)則等
        // ...
        return shiroFilter;
    }
}

在這個例子中,我們配置了一個DefaultWebSecurityManager,并設置了自定義的MyRealm作為Realm。同時,還配置了ShiroFilterFactoryBean,用于定義攔截規(guī)則。

步驟3:編寫Realm

創(chuàng)建一個繼承AuthorizingRealm的自定義Realm類,用于處理身份驗證和授權邏輯:

public class MyRealm extends AuthorizingRealm {

    @Override
    protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authenticationToken) throws AuthenticationException {
        // 處理身份驗證邏輯,例如從數據庫中查詢用戶信息
        // ...
    }

    @Override
    protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principalCollection) {
        // 處理授權邏輯,例如從數據庫中查詢用戶權限信息
        // ...
    }
}

doGetAuthenticationInfo方法中,你可以根據傳入的AuthenticationToken進行用戶身份驗證;而在doGetAuthorizationInfo方法中,你可以根據PrincipalCollection獲取用戶的權限信息。

Shiro的身份驗證

Shiro的身份驗證是整個安全框架的核心。下面,讓我們通過一個簡單的示例來演示如何在Shiro中進行用戶身份驗證。

// 獲取當前用戶
Subject currentUser = SecurityUtils.getSubject();

// 創(chuàng)建一個身份驗證令牌
UsernamePasswordToken token = new UsernamePasswordToken("username", "password");

try {
    // 調用登錄方法進行身份驗證
    currentUser.login(token);
    // 身份驗證成功,執(zhí)行其他邏輯
} catch (AuthenticationException e) {
    // 身份驗證失敗,處理異常
}

在這個例子中,我們首先獲取當前用戶的Subject,然后創(chuàng)建一個UsernamePasswordToken,設置用戶名和密碼。接著,調用currentUser.login(token)方法進行身份驗證,如果身份驗證失敗,將會拋出AuthenticationException異常,你可以在catch塊中處理相應的異常信息。

為了更好地了解Shiro的身份驗證過程,讓我們詳細討論一下MyRealm中的doGetAuthenticationInfo方法。這個方法是Shiro用來處理身份驗證邏輯的地方。

@Override
protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authenticationToken) throws AuthenticationException {
    // 將AuthenticationToken轉換為UsernamePasswordToken
    UsernamePasswordToken token = (UsernamePasswordToken) authenticationToken;
    
    // 從token中獲取用戶名
    String username = token.getUsername();
    
    // 在實際項目中,這里通常是從數據庫中根據用戶名查詢用戶信息
    // 這里為了演示,我們假設存在一個用戶
    if (!"username".equals(username)) {
        throw new UnknownAccountException("用戶不存在");
    }
    
    // 假設數據庫中的密碼是經過加密的,這里為了演示使用明文密碼
    String password = "password";
    
    // 返回認證信息,包括用戶名和密碼
    return new SimpleAuthenticationInfo(username, password, getName());
}

在這個簡單的身份驗證邏輯中,我們通過UsernamePasswordToken獲取到用戶輸入的用戶名,然后假設在數據庫中查詢到了對應的用戶信息。如果用戶名不存在,拋出UnknownAccountException異常表示用戶未知。如果存在用戶,將明文密碼返回給Shiro框架,Shiro會將用戶輸入的密碼與數據庫中的密碼進行匹配。

需要注意的是,在實際項目中,密碼存儲應該是經過安全加密的,而不是明文存儲。Shiro提供了一些常見的加密算法,你可以根據項目需求選擇適當的算法。

Shiro的授權

Shiro的授權功能使我們能夠精確地定義用戶對應用程序中資源的訪問權限。通過授權,我們可以防止未經授權的用戶訪問敏感數據或執(zhí)行危險操作。

授權的基本概念

在Shiro中,授權通常分為兩個步驟:角色授權權限授權。

  • 角色授權:將用戶分配給一個或多個角色,每個角色代表一組相關的權限。用戶通過角色間接獲得權限。

  • 權限授權:直接將權限賦予用戶,允許用戶執(zhí)行具體的操作。權限是對應用程序中資源的訪問控制。

示例:角色授權

讓我們通過一個簡單的例子來演示如何在Shiro中進行角色授權。

首先,在MyRealm中重寫doGetAuthorizationInfo方法:

@Override
protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principalCollection) {
    SimpleAuthorizationInfo authorizationInfo = new SimpleAuthorizationInfo();
    
    // 獲取當前用戶的用戶名
    String username = (String) principalCollection.getPrimaryPrincipal();
    
    // 假設在數據庫中查詢到該用戶的角色信息
    Set<String> roles = new HashSet<>();
    roles.add("admin"); // 用戶擁有admin角色
    
    // 將角色信息設置到AuthorizationInfo中
    authorizationInfo.setRoles(roles);
    
    return authorizationInfo;
}

在這個例子中,我們假設用戶擁有admin角色。在實際項目中,你需要從數據庫中查詢用戶的角色信息。

然后,在應用程序中,你可以通過以下方式檢查用戶是否擁有特定角色:

// 獲取當前用戶
Subject currentUser = SecurityUtils.getSubject();

// 檢查用戶是否擁有admin角色
if (currentUser.hasRole("admin")) {
    // 用戶擁有admin角色,執(zhí)行相應邏輯
} else {
    // 用戶沒有admin角色,執(zhí)行其他邏輯
}

示例:權限授權

現在,讓我們看一個授權中的權限授權的例子。

MyRealm中繼續(xù)完善doGetAuthorizationInfo方法:

@Override
protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principalCollection) {
    SimpleAuthorizationInfo authorizationInfo = new SimpleAuthorizationInfo();
    
    // 獲取當前用戶的用戶名
    String username = (String) principalCollection.getPrimaryPrincipal();
    
    // 假設在數據庫中查詢到該用戶的權限信息
    Set<String> permissions = new HashSet<>();
    permissions.add("user:read"); // 用戶擁有讀取用戶信息的權限
    
    // 將權限信息設置到AuthorizationInfo中
    authorizationInfo.setStringPermissions(permissions);
    
    return authorizationInfo;
}

在這個例子中,我們假設用戶擁有user:read權限。同樣,你需要從數據庫中查詢用戶的權限信息。

在應用程序中,你可以通過以下方式檢查用戶是否擁有特定權限:

// 獲取當前用戶
Subject currentUser = SecurityUtils.getSubject();

// 檢查用戶是否擁有user:read權限
if (currentUser.isPermitted("user:read")) {
    // 用戶擁有user:read權限,執(zhí)行相應邏輯
} else {
    // 用戶沒有user:read權限,執(zhí)行其他邏輯
}

Shiro的會話管理

Shiro提供了靈活且強大的會話管理功能,用于管理用戶的會話狀態(tài)。會話是指用戶在系統中的交互期間保持的狀態(tài),通常用于存儲用戶的登錄信息、權限信息以及其他相關數據。

會話管理的基本概念

在Shiro中,會話管理主要涉及以下幾個方面:

  • 會話創(chuàng)建和銷毀:Shiro會自動管理會話的創(chuàng)建和銷毀,你可以配置會話的超時時間。

  • 會話存儲:會話中存儲用戶的身份信息、權限信息等,以便于在用戶請求之間共享數據。

  • 會話監(jiān)聽:可以通過會話監(jiān)聽器來監(jiān)聽會話的創(chuàng)建、銷毀、過期等事件,以執(zhí)行一些自定義的邏輯。

示例:會話管理

讓我們通過一個簡單的例子來演示如何在Shiro中進行會話管理。首先,我們需要配置Shiro的會話管理器和會話DAO。

ShiroConfig中添加以下配置:

@Configuration
public class ShiroConfig {

    @Bean
    public DefaultWebSecurityManager securityManager() {
        DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager();
        // 設置Realm
        securityManager.setRealm(myRealm());
        // 設置會話管理器
        securityManager.setSessionManager(sessionManager());
        // 設置會話DAO
        securityManager.setSessionDAO(sessionDAO());
        return securityManager;
    }

    @Bean
    public MyRealm myRealm() {
        return new MyRealm();
    }

    @Bean
    public DefaultWebSessionManager sessionManager() {
        DefaultWebSessionManager sessionManager = new DefaultWebSessionManager();
        // 設置全局會話超時時間(毫秒)
        sessionManager.setGlobalSessionTimeout(1800000); // 30分鐘
        // 是否在會話過期后自動刪除
        sessionManager.setDeleteInvalidSessions(true);
        // 是否開啟定時調度器檢測過期會話
        sessionManager.setSessionValidationSchedulerEnabled(true);
        return sessionManager;
    }

    @Bean
    public EnterpriseCacheSessionDAO sessionDAO() {
        // 使用企業(yè)級緩存SessionDAO,可以替換為其他實現
        EnterpriseCacheSessionDAO sessionDAO = new EnterpriseCacheSessionDAO();
        // 設置緩存名稱,根據實際情況配置
        sessionDAO.setActiveSessionsCacheName("shiro-activeSessionCache");
        return sessionDAO;
    }

    // ...其他配置
}

在這個配置中,我們配置了一個DefaultWebSessionManager作為會話管理器,設置了全局會話超時時間為30分鐘。同時,我們使用了EnterpriseCacheSessionDAO作為會話DAO,用于存儲會話數據。你可以根據項目需求選擇不同的會話DAO實現。

接下來,在MyRealm中,我們可以通過重寫doGetAuthenticationInfo方法將用戶的身份信息存儲到會話中:

@Override
protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authenticationToken) throws AuthenticationException {
    // 將AuthenticationToken轉換為UsernamePasswordToken
    UsernamePasswordToken token = (UsernamePasswordToken) authenticationToken;

    // 從token中獲取用戶名
    String username = token.getUsername();

    // 在實際項目中,這里通常是從數據庫中根據用戶名查詢用戶信息
    // 這里為了演示,我們假設存在一個用戶
    if (!"username".equals(username)) {
        throw new UnknownAccountException("用戶不存在");
    }

    // 假設數據庫中的密碼是經過加密的,這里為了演示使用明文密碼
    String password = "password";

    // 返回認證信息,包括用戶名和密碼
    SimpleAuthenticationInfo authenticationInfo = new SimpleAuthenticationInfo(username, password, getName());

    // 獲取當前Subject的會話,存儲用戶身份信息
    Session session = SecurityUtils.getSubject().getSession();
    session.setAttribute("currentUsername", username);

    return authenticationInfo;
}

在這個例子中,我們使用SecurityUtils.getSubject().getSession()獲取當前Subject的會話對象,然后將用戶名存儲到會話的currentUsername屬性中。這樣,在整個用戶會話期間,我們都可以通過SecurityUtils.getSubject().getSession().getAttribute("currentUsername")獲取到當前用戶的用戶名。

Shiro的其他特性

除了上述介紹的核心功能之外,Shiro還提供了許多其他有用的特性,例如密碼加密、RememberMe功能、單點登錄等。在這里,簡單介紹一下其中的一些特性。

密碼加密

在真實項目中,用戶密碼通常不會以明文形式存儲在數據庫中,而是經過加密處理。Shiro提供了方便的密碼加密工具,可以輕松地對密碼進行加密和驗證。

首先,在MyRealm中,修改doGetAuthenticationInfo方法,將明文密碼加密后返回:

@Override
protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authenticationToken) throws AuthenticationException {
    // 將AuthenticationToken轉換為UsernamePasswordToken
    UsernamePasswordToken token = (UsernamePasswordToken) authenticationToken;

    // 從token中獲取用戶名
    String username = token.getUsername();

    // 在實際項目中,這里通常是從數據庫中根據用戶名查詢用戶信息
    // 這里為了演示,我們假設存在一個用戶
    if (!"username".equals(username)) {
        throw new UnknownAccountException("用戶不存在");
    }

    // 假設數據庫中的密碼是經過加密的
    String encryptedPassword = encryptPassword("password");

    // 返回認證信息,包括用戶名和加密后的密碼
    return new SimpleAuthenticationInfo(username, encryptedPassword, getName());
}

private String encryptPassword(String password) {
    // 使用Shiro提供的密碼加密工具
    return new Md5Hash(password).toHex();
}

在這個例子中,我們使用Md5Hash對密碼進行MD5加密。你可以根據實際項目需求選擇其他加密算法。

RememberMe功能

Shiro的RememberMe功能允許用戶在關閉瀏覽器后仍然保持登錄狀態(tài)。通過簡單的配置,我們可以啟用RememberMe功能。

ShiroConfig中添加RememberMe的配置:

@Bean
public CookieRememberMeManager rememberMeManager() {
    CookieRememberMeManager rememberMeManager = new CookieRememberMeManager();
    SimpleCookie rememberMeCookie = new SimpleCookie("rememberMe");
    rememberMeCookie.setMaxAge(2592000); // 設置Cookie的有效期,單位秒,這里為30天
    rememberMeManager.setCookie(rememberMeCookie);
    return rememberMeManager;
}

@Bean
public DefaultWebSecurityManager securityManager() {
    DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager();
    // 設置Realm
    securityManager.setRealm(myRealm());
    // 設置會話管理器
    securityManager.setSessionManager(sessionManager());
    // 設置會話DAO
    securityManager.setSessionDAO(sessionDAO());
    // 設置RememberMe管理器
    securityManager.setRememberMeManager(rememberMeManager());
    return securityManager;
}

在這個配置中,我們創(chuàng)建了一個CookieRememberMeManager,并設置了RememberMe的Cookie名稱和有效期。然后將其添加到DefaultWebSecurityManager中。

單點登錄

Shiro還支持單點登錄(SSO),使用戶能夠在多個關聯的應用程序中使用同一套憑據進行登錄。Shiro的單點登錄功能可以通過集成其他身份驗證和授權提供程序來實現,其中包括OAuth、CAS等。在這里,我們簡單介紹一下使用OAuth 2.0的單點登錄配置。

首先,在ShiroConfig中添加OAuth的配置:

@Bean
public OAuth2Realm oAuth2Realm() {
    return new OAuth2Realm();
}

@Bean
public DefaultWebSecurityManager securityManager() {
    DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager();
    // 設置Realm
    securityManager.setRealm(oAuth2Realm());
    // 設置會話管理器
    securityManager.setSessionManager(sessionManager());
    // 設置會話DAO
    securityManager.setSessionDAO(sessionDAO());
    // 設置RememberMe管理器
    securityManager.setRememberMeManager(rememberMeManager());
    return securityManager;
}

在這個配置中,我們創(chuàng)建了一個OAuth2Realm并將其設置為主Realm。OAuth2Realm是一個自定義的Realm,用于處理OAuth 2.0的身份驗證和授權。

接下來,實現OAuth2Realm

public class OAuth2Realm extends AuthorizingRealm {

    @Override
    protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principalCollection) {
        // 處理OAuth 2.0的授權邏輯
        // ...
    }

    @Override
    protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authenticationToken) throws AuthenticationException {
        // 處理OAuth 2.0的身份驗證邏輯
        // ...
    }
}

doGetAuthenticationInfodoGetAuthorizationInfo方法中,你需要實現OAuth 2.0的身份驗證和授權邏輯,具體實現方式取決于你使用的OAuth提供商。

這只是Shiro單點登錄的一個簡單示例,實際上,單點登錄可能涉及到更復雜的協議和配置,具體實現方式取決于你的項目需求。

結語

Apache Shiro作為一款強大且靈活的Java安全框架,為我們提供了全面的安全性解決方案。通過本文的介紹,你應該對Shiro的基本原理、使用方法以及一些高級功能有了初步的了解。

在實際項目中,根據具體需求和項目規(guī)模,你可以選擇使用Shiro來保護你的應用。不僅如此,Shiro的社區(qū)活躍,文檔詳盡,你可以方便地獲取支持和解決問題。

希望這篇博客對你理解和使用Shiro提供了一些幫助。在你的項目中加入這把保護應用的利劍,讓你的應用更加安全可靠!文章來源地址http://www.zghlxwxcb.cn/news/detail-845655.html

作者信息

作者 : 繁依Fanyi
CSDN: https://techfanyi.blog.csdn.net
掘金:https://juejin.cn/user/4154386571867191

到了這里,關于安全之劍:深度解析 Apache Shiro 框架原理與使用指南的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 框架漏洞-CVE復現-Apache Shiro+Apache Solr

    框架漏洞-CVE復現-Apache Shiro+Apache Solr

    什么是框架? ?????? 就是別人寫好包裝起來的一套工具,把你原先必須要寫的,必須要做的一些復雜的東西都寫好了放在那里,你只要調用他的方法,就可以實現一些本來要費好大勁的功能。 ???????? 如果網站的功能是采用框架開發(fā)的,那么挖掘功能的漏洞就相當于

    2024年02月16日
    瀏覽(19)
  • Spring Security 和 Apache Shiro 登錄安全架構選型

    Spring Security和Apache Shiro都是廣泛使用的Java安全框架,它們都提供了許多功能來保護應用程序的安全性,包括身份驗證、授權、加密、會話管理等。 Spring Security和Apache Shiro都是非常常用的登錄安全框架,兩者在登錄安全架構的選型上各有特點: Spring Security特點: 與Spring框架深度集

    2024年02月14日
    瀏覽(22)
  • Apache Shiro RememberMe 1.2.4 反序列化過程命令執(zhí)行漏洞【原理掃描】

    Apache Shiro RememberMe 1.2.4 反序列化過程命令執(zhí)行漏洞【原理掃描】

    文章目錄 一、分析定位 1. 漏洞描述 2. 項目引發(fā)漏洞簡述 二、 若依系統 2.1. 版本升級 2.2. 配置文件 2.3. 推薦做法 2.4. 栗子 2.5. 項目場景 三、Gus系統 3.1. shiro版本升級 3.2. 調用重新生成 3.3. 生成工具類 shiro漏洞補充: 一、分析定位 1. 漏洞描述 2. 項目引發(fā)漏洞簡述 若依/Guns管

    2024年02月15日
    瀏覽(24)
  • 深度解析Redisson框架的分布式鎖運行原理與高級知識點

    分布式系統中的鎖管理一直是一個復雜而關鍵的問 題。在這個領域,Redisson框架憑借其出色的性能和功能成為了開發(fā)者的首選之一。本篇博客將深入探討Redisson框架的分布式鎖運行原理以及涉及的高級知識點。通過詳細的解釋和示例代碼,您將更好地理解如何在分布式環(huán)境中

    2024年02月09日
    瀏覽(60)
  • Shiro安全框架簡介

    Shiro安全框架簡介

    1.1 什么是權限管理 基本上只要涉及到用戶參數的系統都要進行權限管理,使用權限管理實現了對用戶訪問系統的控制,不同的用戶訪問不同的資源。按照安全規(guī)則或者安全策略控制用戶訪問資源,而且只能訪問被授權的資源 權限管理包括認證和授權兩部分,當用戶訪問資源

    2023年04月20日
    瀏覽(23)
  • shiro 安全(權限)框架

    shiro 安全(權限)框架

    1.1、概述 Apache Shiro 是一個功能強大且易于使用的 Java 安全(權限)框架。Shiro 可以完成:認證、授權、加密、會話管理、與 Web 集成、緩存 等。借助 Shiro 您可以快速輕松地保護任何應用程序——從最小的移動應用程序到最大的 Web 和企業(yè)應用程序。 官網:https://shiro.apache.org/

    2024年02月06日
    瀏覽(32)
  • JAVA安全框架之shiro

    JAVA安全框架之shiro

    Apache Shiro 是一個功能強大且易于使用的 Java 安全(權限)框架 。Shiro 可以完 成: 認證、授權、加密、會話管理、與 Web 集成、緩存 等。借助 Shiro 您可以快速輕松 地保護任何應用程序——從最小的移動應用程序到最大的 Web 和企業(yè)應用程序。 官網 :https://shiro.apache.org/ ? ? s

    2024年02月15日
    瀏覽(59)
  • SSM+Shiro安全框架整合(完成安全認證--登錄+權限授權)+ssm整合shiro前后端分離

    SSM+Shiro安全框架整合(完成安全認證--登錄+權限授權)+ssm整合shiro前后端分離

    目錄 1.搭建SSM框架 ?1.1.引入相關的依賴 1.2.?spring配置文件 1.3. web.xml配置文件 1.4.配置Tomcat并啟動 2.ssm整合shiro---認證功能 ?(1).引入依賴 (2).修改spring配置文件 (3).修改web.xml文件 (4).新建login.jsp(登錄頁面) (5).新建success.jsp(登錄成功后跳轉到此) (6).創(chuàng)建User實體類 (7).創(chuàng)建LoginVo

    2024年02月15日
    瀏覽(26)
  • SSM 整合 Shiro 安全框架【快速入門】

    SSM 整合 Shiro 安全框架【快速入門】

    更改web路徑 創(chuàng)建所需目錄 屬性名與數據庫字段名一 一對應 這里只是為了測試項目,還沒有進行編碼工作 啟動tamcat服務 LoginVo

    2024年02月12日
    瀏覽(22)
  • 請簡單介紹一下Shiro框架是什么?Shiro在Java安全領域的主要作用是什么?Shiro主要提供了哪些安全功能

    請簡單介紹一下Shiro框架是什么?Shiro在Java安全領域的主要作用是什么?Shiro主要提供了哪些安全功能

    會話管理(Session Management):Shiro能夠管理用戶的會話狀態(tài),包括會話的創(chuàng)建、維護和銷毀。它支持多種會話存儲方式(如內存、數據庫等),并提供了會話超時、會話失效等機制,以確保會話的安全性。 跨平臺集成:Shiro不僅適用于Web應用程序,還可以輕松集成到桌面應用

    2024年04月13日
    瀏覽(29)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包