1. 程式人生 > >Redis實現Restful的訪問許可權控制(一)

Redis實現Restful的訪問許可權控制(一)

  1. redis資料來源接入
  2. redis快取
  3. 使用者登入標識快取
  4. 訪問介面許可權攔截

redis資料來源接入

redis.properties

redis.host=127.0.0.1
redis.port=6379
redis.timeout=50
redis.password=123456

spring-mvc

<context:property-placeholder location="classpath:redis.properties"/>
<context:component-scan base-package="arthur.test.redis">
</context:component-scan> <!-- redis連線池配置 --> <bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig"> <property name="maxActive" value="500" /> <property name="maxIdle" value="8" /> <property name="maxWait" value="10000" /> <property name="testOnBorrow"
value="true"/>
<property name="testOnReturn" value="true"/> <property name="testWhileIdle" value="true"/> </bean> <bean id="jedis.shardInfoMain" class="redis.clients.jedis.JedisShardInfo"> <constructor-arg name="host" value="${redis.host}" /> <constructor-arg
name="port" value="${redis.port}" />
<constructor-arg name="timeout" value="${redis.timeout}" /> <constructor-arg name="weight" value="1" /> <property name="password" value="${redis.password}"></property> </bean> <!-- redis配置 --> <bean id="shardedJedisPool" class="redis.clients.jedis.ShardedJedisPool" scope="singleton"> <constructor-arg index="0" ref="jedisPoolConfig" /> <constructor-arg index="1"> <list> <ref bean="jedis.shardInfoMain" /> </list> </constructor-arg> </bean>

RedisDataSource

import redis.clients.jedis.ShardedJedis;

/**
 * @Author:Arthur Han
 * @Description:
 * @CreateDate:2017/3/318:15
 * @Modified By:
 */
public interface RedisDataSource {
    ShardedJedis getRedisClient();
    void returnResource(ShardedJedis shardedJedis);
    void returnResource(ShardedJedis shardedJedis, boolean broken);
}

RedisDataSourceImpl

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import redis.clients.jedis.ShardedJedis;
import redis.clients.jedis.ShardedJedisPool;
import arthur.test.redis.RedisDataSource;

/**
 * @Author:Arthur Han
 * @Description:
 * @CreateDate:2017/3/318:16
 * @Modified By:
 */
@Repository("redisDataSource")
public class RedisDataSourceImpl implements RedisDataSource {

    @Autowired
    private ShardedJedisPool shardedJedisPool;

    public ShardedJedis getRedisClient() {
        try {
            ShardedJedis shardJedis = shardedJedisPool.getResource();
            return shardJedis;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

    public void returnResource(ShardedJedis shardedJedis) {
        shardedJedisPool.returnResource(shardedJedis);
    }

    public void returnResource(ShardedJedis shardedJedis, boolean broken) {
        if (broken) {
            shardedJedisPool.returnBrokenResource(shardedJedis);
        } else {
            shardedJedisPool.returnResource(shardedJedis);
        }
    }
}

相關推薦

Redis實現Restful訪問許可權控制

redis資料來源接入 redis快取 使用者登入標識快取 訪問介面許可權攔截 redis資料來源接入 redis.properties redis.host=127.0.0.1 redis.

Redis實現Restful訪問許可權控制

redis資料來源接入 redis快取 使用者登入標識快取 訪問介面許可權攔截 訪問介面許可權攔截 @Authorization @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNT

SpringCloud微服務許可權控制概述

從單體應用到SOA應用再到Spring Cloud微服務構架,應用的安全訪問都是非常重要的問題,怎麼樣設計微服務的許可權控制?首先,許可權控制可以分為三個部分:使用者認證,服務許可權,使用者許可權。 使用者認證 使用者認證,簡單的講,可以簡化為應用對使用者登入狀態的認證。

shiro許可權控制:shiro介紹以及整合SSM框架

 shiro安全框架是目前為止作為登入註冊最常用的框架,因為它十分的強大簡單,提供了認證、授權、加密和會話管理等功能 。  shiro能做什麼?       認證:驗證使用者的身份       授權:對使用者執行訪問控制:判斷使用者是否被允許做某事       會話管理:在任

基於Sentry實現資料訪問許可權控制

Sentry初識 Sentry是適用於Hadoop生態環境、基於角色的授權管理系統,可以模組化整合到HDFS、Hive、Impala。它是一個策略引擎,執行定義授權規則,以校驗使用者對資料模型的訪問請求。 授權粒度 Sentry資料訪問授權的實現依賴於授權物件和操作,授權物件定義要受授權規則約束的物件,

Java 之路 (六) -- 訪問許可權控制Package、Public、protected、friendly、private

這一章內容比較少,也比較基礎。 不多廢話,下面開始這一章的學習吧。 學習內容 包 package 訪問許可權 public、protected、預設、private 1. Package (1) 原因:為了更好的組織類,Java 提供了

elasticsearch+logstash+kibana5.5.2整合searchguard實現使用者許可權管理

本文不講elk的安裝,只說如何在現有elk環境下新增searchguard功能。 bin/elasticsearch-plugin install -b com.floragunn:search-guard-5:5.5.2-16 線上安裝可能不成功,可以

JAVA訪問許可權控制JAVA Access Control

正文 理論知識 看錶理解 看例子理解 一些建議 注意的地方 參考來源 概述 背景 問題(動機、需求) 訪問控制(或隱藏具體實現)與“最初實現並不恰當”有關。 —— 摘自JAVA程式設計思想 1. 程式碼會

DRF之訪問許可權控制訪問頻率控制節流

# 許可權控制 ## 前言 **使用者驗證使用者許可權,根據不同訪問許可權控制對不同內容的訪問。** 建議瞭解檢視、token驗證的內容。 ## 使用流程 1. 自定義訪問許可權類,繼承`BasePermission`,重寫`has_permission()`方法,如果許可權通過,就返回`True`

python結合excel數據輕松實現接口自動化測試

判斷 原因 一個 軟件測試 測試 相等 fin 完成 想去 在剛剛進入測試行業的時候,最開始也是做功能測試,我想很多夥伴和我一樣,覺得自動化測試都很高端,很神秘。迫不及待的想去學習作自動化測試。 以前比較常用數據庫+python做自動化,後面發現excel個人覺得更加適合,

java Socket實現簡單在線聊天

結合線程 java.awt exc iss order 新建 exception connect border 出處:http://blog.csdn.net/tuzongxun 最近的項目有一個在線網頁交流的需求,由於很久以前做過的demo已經忘記的差不多了,因此便重新學

python 基礎 2.1 if 流程控制

字符串 ace 冒號 rip inpu root 類型 真的 use 一.if else 1.if 語句 if expression: //註意if後有冒號,必須有 statement(s) //相對於if縮進4個空格 註:python

JavaWeb(實現文件上傳)

submit tps pack 字符 title puts 安全 實現 servlet 通過Servlet來實現文件上傳的功能 實現用戶將文件上傳到服務裏的功能 文件上傳功能解釋: 當用戶在前端網頁點擊文件上傳後,javaWeb的servlet會獲得用戶所提交的文件並且

【MySQL】通過Binary Log簡單實現數據回滾

pre mage 用途 top IT cal 時間 excel var 一、前言 對,沒錯,我又水了好一陣子,深刻反思寄幾。前段時間,工作項目上出於對excel等批量操作可能出現誤操作的問題,要求提供一個能夠根據操作批次進行數據回滾的能力。在開發的過程中接觸到了MySQL的

DockerFile部署lnmp+memcached+redis+mongodb開發環境for Nginx

name tor dir wall ech permanent roo emp login 本文源鏈接地址:https://www.93bok.com 1、下載基礎鏡像centos docker pull centos:6 2、查看一下大小 docker images RE

Java流程控制

***************************第三章 流程控制************************************ 流程控制語句的分類: 一.順序語句 二.分支語句(條件語句) 三.迴圈語句   ***************************順序語句*

前端開發框架總結之利用Jtopo實現網路拓撲功能

                      前端開發框架總結之利用Jtopo實現網路拓撲功能(一) 前言:     前段時間由於專案需要實現一個網路裝置拓撲管理的

RabbitMQ使用者角色及許可權控制

轉載至:https://blog.csdn.net/awhip9/article/details/72123257 2017年05月15日 10:39:26 awhip9 閱讀數:3538  

自己動手實現java數據結構 向量

註意 api接口 復雜度 郵箱 ++ pri ont ren new 1.向量介紹 計算機程序主要運行在內存中,而內存在邏輯上可以被看做是連續的地址。為了充分利用這一特性,在主流的編程語言中都存在一種底層的被稱為數組(Array)的數據結構與之對應。在使用數組時需要事先聲明

Apache Shiro 許可權控制2

Shiro的 /WEB-INF目錄下的shiro.ini 配置檔案url匹配方式: ① ? 可以匹配一個字元   /admin?   ---->可以匹配到/admin1   /admin12匹配不到 ② *