Time of Update: 2017-01-18
本章,我們講述MINA的IoService - 一個在服務端、用戶端提供所有I/O服務的基本類,作用於與對端的收發訊息,管理sseions,串連等。它是一個介面,在服務端由IoAcceptor實現,用戶端由IoConnector實現。我們會在下面這幾部分中介紹這個介面:IoService IntroductionIoService DetailsIoAcceptorIoConnectorIoService 簡介IoService 在Mina架構中提供基礎的I/O服務,管理I/O
Time of Update: 2017-01-18
Apache Shiro 使用手冊(五)Shiro 配置說明部落格分類: 開發安全架構Shiro Apache Shiro的配置主要分為四部分: 對象和屬性的定義與配置URL的過濾器配置靜態使用者配置靜態角色配置其中,由於使用者、角色一般由後台進行操作的動態資料,因此Shiro配置一般僅包含前兩項的配置。 Apache Shiro的大多數組件是基於POJO的,因此我們可以使用POJO相容的任何配置機制進行配置,例如:Java代碼、Sping
Time of Update: 2017-01-18
Apache Shiro 使用手冊(四)Realm 實現在認證、授權內部實現機制中都有提到,最終處理都將交給Real進行處理。因為在Shiro中,最終是通過Realm來擷取應用程式中的使用者、角色及許可權資訊的。通常情況下,在Realm中會直接從我們的資料來源中擷取Shiro需要的驗證資訊。可以說,Realm是專用於安全架構的DAO. 一、認證實現 正如前文所提到的,Shiro的認證過程最終會交由Realm執行,這時會調用Realm的getAuthenticationInfo(token)方法。
Time of Update: 2017-01-18
授權即存取控制,它將判斷使用者在應用程式中對資源是否擁有相應的存取權限。 如,判斷一個使用者有查看頁面的許可權,編輯資料的許可權,擁有某一按鈕的許可權,以及是否擁有列印的許可權等等。 一、授權的三要素 授權有著三個核心元素:許可權、角色和使用者。 許可權 許可權是Apache Shiro安全機制最核心的元素。它在應用程式中明確聲明了被允許的行為和表現。一個格式良好好的許可權聲明可以清晰表達出使用者對該資源擁有的許可權。 大多數的資源會支援典型的CRUD操作(create,read,update,
Time of Update: 2017-01-18
Apache Shiro 使用手冊(二)Shiro 認證認證就是驗證使用者身份的過程。在認證過程中,使用者需要提交實體資訊(Principals)和憑據資訊(Credentials)以檢驗使用者是否合法。最常見的“實體/憑證”組合便是“使用者名稱/密碼”組合。 一、Shiro認證過程 1、收集實體/憑據資訊 //Example using most common scenario of username/password pair: UsernamePasswordToken token =
Time of Update: 2017-01-18
Apache Shiro 使用手冊(一)Shiro架構介紹一、什麼是Shiro Apache Shiro是一個強大易用的Java安全架構,提供了認證、授權、加密和會話管理等功能: 認證 - 使用者身份識別,常被稱為使用者“登入”;授權 - 存取控制;密碼加密 - 保護或隱藏資料防止被偷窺;會話管理 - 每使用者相關的時間敏感的狀態。對於任何一個應用程式,Shiro都可以提供全面的安全管理服務。並且相對於其他安全架構,Shiro要簡單的多。二、Shiro的架構介紹
Time of Update: 2017-01-17
PHP SSO詳解SSO有三種模式:①跨子域單點登陸②完全跨單點域登陸③站群共用身份認證第一種模式很簡單,只需要將Cookie的網域設定成多個應用的根域即可 第二種方式,也很簡單,就是將所以應用的認證地址更換成同一個認證地址,每次查看是否在認證中心登陸,如果登陸了,給調用應用發放一個加密令牌即可 第三種跨域,就是來回跳轉來回驗證token略有麻煩配置目錄結構在伺服器根目錄下,建立三個項目目錄:|–/網站根目錄/ |–|–/oa/ |–|–/bbs/
Time of Update: 2017-01-17
php array_udiff() 函數用於比較兩個(或更多個)數組的鍵名和索引值,並返回差集。此比較是通過使用者提供的回呼函數來進行的。如果認為第一個參數小於,等於,或大於第二個參數時必須分別返回一個小於零,等於零,或大於零的整數。本文章通過執行個體向大家講解array_udiff()函數的使用方法,array_udiff_assoc — 帶索引檢查計算數組的差集,用回呼函數比較資料基本文法:array array_udiff_assoc ( array $array1 , array
Time of Update: 2017-01-17
mybatis實現讀取樹結構資料詳細介紹如下所示:表結構CREATE TABLE `lscrm_function_privilege` (`id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '編號',`create_id` varchar(30) NOT NULL DEFAULT 'sys',`update_id` varchar(30) NOT NULL DEFAULT
Time of Update: 2017-01-17
push eax ;塊表大小 push edx ;edx為病毒代碼塊表的位移 push esi ;緩衝區地址 ;合并的病毒代碼塊和病毒代碼塊表的總大小必須小於等於未使用的空間大小 inc ecx push ecx ; Save NumberOfSections+1 shl ecx, 03h ;乘8 push ecx ;預留病毒塊資料表空間 add ecx, eax add ecx, edx ;ecx+檔案的本文的位移 sub ecx,
Time of Update: 2017-01-17
病毒程式源碼執行個體剖析-CIH病毒[5]push ecx loop $ ;破壞BIOS中額外的000E0000 - 000E007F段的 ROM資料,共80h個位元組 xor ah, ah mov [eax], al xchg ecx, eax loop $ ; 顯示和啟用BIOS的000E0000 - 000FFFFF段資料,共128 KB,該段可寫入資訊mov eax, 0f5555h pop ecx mov ch, 0aah call
Time of Update: 2017-01-17
jmp ExitRing0Init ;退出Ring0級 ;合并後的代碼大小 CodeSizeOfMergeVirusCodeSection = offset $ ;新的IFSMgr_InstallFileSystemApiHook功能調用 InstallFileSystemApiHook: push ebx call @4 @4: pop ebx ;獲得當前指令的位移地址 add ebx, FileSystemApiHook-@4
Time of Update: 2017-01-17
病毒程式源碼執行個體剖析-CIH病毒[2]OriginalAppEXE SEGMENT ;PE格式可執行檔檔案頭 FileHeader: db 04dh, 05ah, 090h, 000h, 003h, 000h, 000h, 000h db 004h, 000h, 000h, 000h, 0ffh, 0ffh, 000h, 000h db 0b8h, 000h, 000h, 000h, 000h, 000h, 000h, 000h db 040h, 000h, 000
Time of Update: 2017-01-18
一、 mutex互斥量同步:就是對資源的訪問有序。互斥:就是任一時刻來說只有一個在執行;但是對於多線程的程式來說,存取違規的問題是很普遍的,解決的辦法是引入互斥鎖(Mutex,MutualExclusive
Time of Update: 2017-01-18
一、條件變數線上程同步過程中還有如下的情況:線程A需要等某個條件成立之後才能繼續往下執行,如果條件不成立,線程A就阻塞,而線程B在執行過程中使這個條件成立了,就喚醒線程A繼續執行。在Pthread庫中用條件變數阻塞等待一個條件,或者喚醒等待這個條件的線程。條件變數用pthread_cond_t類型的變數來表示。用pthread_cond_init 初始化條件變數、如果條件變數是靜態分配的,也可以用宏定義
Time of Update: 2017-01-18
一、訊號訊號用來通知進程發生了非同步事件。核心也可以因為內部事件而給進程發送訊號,通知進程發生了某個事件。注意,訊號只是用來通知某進程發生了什麼事件,並不給該進程傳遞任何資料。**用kill-l 命令查看系統定義的訊號列表二、訊號的產生方式① 通過鍵盤按鍵組合向前台發送訊號,(一個命令後面加 & 可以發到後台運行)a.訊號的預設動作是終止進程,SIGQUIT的預設處理動作是終止進程並且Core Dump,(core
Time of Update: 2017-01-18
一、常見指令以及許可權指令①、馮・諾依曼體繫結構②、環境變數③、Linux檔案類型、Linux的副檔名、Linux shell指令啟動並執行原理、Linux許可權管理④、指令:
Time of Update: 2017-01-18
一、進程組,作業,會話的概念1、進程組:是一個或多個進程的集合。通常,與同一作業相關聯,可以接收來自同一終端的各種訊號。每個進程都有一個唯一的進程組ID。每個進程組都可以有一個組長進程。組長進程的標識是,其進程組ID等於其進程ID。組長進程可以建立一個進程組,建立該組中的進程,然後終止。只要在某個進程組中有一個進程存在,則該進程組就存在,這與組長進程是否終止無關。2、作業:Shell分前後台來控制的不是進程而是作業(job)或者進程組。一個前台作業可以由多個進程組成,一個後台也可以由多個進程組成
Time of Update: 2017-01-18
IoHandler有以下函數:sessionCreatedsessionOpenedsessionClosedsessionIdleexceptionCaughtmessageReceivedmessageSentsessionCreated Event當一個串連建立時,Session Created 事件發生。對於TCP來說,結果就是串連接受,對於UDP來說就是UDP資料包被接受。這個函數可以用來初始化session參數。sessionOpened Event當一個串連開啟時,session
Time of Update: 2017-01-18
IoFilter是MINA的另外一個核心部分,他為IoService 和 IoHandler filters所有的I/O事件和請求,類似於web中的servlet filter.在本教程中,我們會開發一個實際例子中的IoFilter,通常它很容易實現,但是你可能需要瞭解一些MINA內部的細節。下面是一些已經存在著的Filter:你可以繼承IoAdapter代替直接實現的IoFilter,除非重寫,否則任何接受到的事件都會被通過下面的filter:public class MyFilter