導航:首頁 > 專利知識 > shiro有效期

shiro有效期

發布時間:2021-07-05 23:42:44

A. 怎麼設置shiro怎麼設置session有效時間最大

KeepAlive on KeepAliveTimeout 15 這樣就能限制每個session的保持時間是15秒。 session的使用可以使得很多請求都可以通過同一個tcp連接來發送,節約了網路資源和系統資源

B. shiro 怎麼知道session 什麼時候過期的

Session時間過期是你自己設置的。

推薦一套完整的Shiro Demo,免費的。

Shiro介紹文檔:http://www.sojson.com/shiro
Demo已經部署到線上,地址是http://shiro.itboy.net

管理員帳號:admin,密碼:sojson.com 如果密碼錯誤,請用sojson。PS:你可以注冊自己的帳號,然後用管理員賦許可權給你自己的帳號,但是,每20分鍾會把數據初始化一次。建議自己下載源碼,讓Demo跑起來,然後跑的更快。

C. shiro中標簽無效,要刷新多次才能有效果

這個檢查你的環境,理論上是不會存在的。

推薦一套完整的Shiro Demo,免費的。

Shiro介紹文檔:http://www.sojson.com/shiro
Demo已經部署到線上,地址是http://shiro.itboy.net

管理員帳號:admin,密碼:sojson.com 如果密碼錯誤,請用sojson。PS:你可以注冊自己的帳號,然後用管理員賦許可權給你自己的帳號,但是,每20分鍾會把數據初始化一次。建議自己下載源碼,讓Demo跑起來,然後跑的更快。

D. spring3支持shiro註解么 為什麼我的註解加上就拋異常

• @Controller
• @Service
• @Autowired
• @RequestMapping
• @RequestParam
• @ModelAttribute
• @Cacheable
• @CacheFlush
• @Resource
• @PostConstruct
• @PreDestroy
• @Repository
• @Component (不推薦使用)
• @Scope
• @SessionAttributes
• @InitBinder
• @Required
• @Qualifier

@Controller
• 例如
@Controller
public class SoftCreateController extends SimpleBaseController {}

• 或者
@Controller("softCreateController")

• 說明
@Controller 負責注冊一個bean 到spring 上下文中,bean 的ID 默認為類名稱開頭字母小寫

@Service
• 例如
@Service
public class SoftCreateServiceImpl implements ISoftCreateService {}

• 或者
@Service("softCreateServiceImpl")

• 說明
@Service 負責注冊一個bean 到spring 上下文中,bean 的ID 默認為類名稱開頭字母小寫

@Autowired
• 例如
@Autowired
private ISoftPMService softPMService;

• 或者

@Autowired(required=false)
private ISoftPMService softPMService = new SoftPMServiceImpl();

• 說明
@Autowired 根據bean 類型從spring 上線文中進行查找,注冊類型必須唯一,否則報異常。與@Resource 的區別在於,@Resource 允許通過bean 名稱或bean 類型兩種方式進行查找@Autowired(required=false) 表示,如果spring 上下文中沒有找到該類型的bean 時, 才會使用new SoftPMServiceImpl();

@Autowired 標注作用於 Map 類型時,如果 Map 的 key 為 String 類型,則 Spring 會將容器中所有類型符合 Map 的 value 對應的類型的 Bean 增加進來,用 Bean 的 id 或 name 作為 Map 的 key。

@Autowired 還有一個作用就是,如果將其標注在 BeanFactory 類型、ApplicationContext 類型、ResourceLoader 類型、ApplicationEventPublisher 類型、MessageSource 類型上,那麼 Spring 會自動注入這些實現類的實例,不需要額外的操作。

@RequestMapping
• 類
@Controller
@RequestMapping("/bbtForum.do")
public class BbtForumController {
@RequestMapping(params = "method=listBoardTopic")
public String listBoardTopic(int topicId,User user) {}
}

• 方法
@RequestMapping("/softpg/downSoftPg.do")
@RequestMapping(value="/softpg/ajaxLoadSoftId.do",method = POST)
@RequestMapping(value = "/osu/proct/detail.do", params = , method =POST)

• 說明
@RequestMapping 可以聲明到類或方法上

• 參數綁定說明
如果我們使用以下的 URL 請求:

topicId URL 參數將綁定到 topicId 入參上,而 userId 和 userName URL 參數將綁定到 user 對象的 userId 和 userName 屬性中。和 URL 請求中不允許沒有 topicId 參數不同,雖然 User 的 userId 屬性的類型是基本數據類型,但如果 URL 中不存在 userId 參數,Spring 也不會報錯,此時 user.userId 值為 0 。如果 User 對象擁有一個 dept.deptId 的級聯屬性,那麼它將和 dept.deptId URL 參數綁定。

@RequestParam
• 參數綁定說明
@RequestParam("id")

listBoardTopic(@RequestParam("id")int topicId,User user) 中的 topicId 綁定到 id 這個 URL 參數, 那麼可以通過對入參使用 @RequestParam 註解來達到目的

@RequestParam(required=false):參數不是必須的,默認為true
@RequestParam(value="id",required=false)

請求處理方法入參的可選類型
• Java 基本數據類型和 String
默認情況下將按名稱匹配的方式綁定到 URL 參數上,可以通過 @RequestParam 註解改變默認的綁定規則

• request/response/session
既可以是 Servlet API 的也可以是 Portlet API 對應的對象,Spring 會將它們綁定到Servlet 和 Portlet 容器的相應對象上

• org.springframework.web.context.request.WebRequest
內部包含了 request 對象

• java.util.Locale
綁定到 request 對應的 Locale 對象上

• java.io.InputStream/java.io.Reader
可以藉此訪問 request 的內容

• java.io.OutputStream / java.io.Writer
可以藉此操作 response 的內容

• 任何標注了 @RequestParam 註解的入參
被標注 @RequestParam 註解的入參將綁定到特定的 request 參數上。

• java.util.Map / org.springframework.ui.ModelMap
它綁定 Spring MVC 框架中每個請求所創建的潛在的模型對象,它們可以被 Web 視圖對象訪問(如 JSP )

• 命令/ 表單對象(註:一般稱綁定使用 HTTP GET 發送的 URL 參數的對象為命令對象,而稱綁定使用HTTP POST 發送的 URL 參數的對象為表單對象)
它們的屬性將以名稱匹配的規則綁定到 URL 參數上,同時完成類型的轉換。
而類型轉換的規則可以通過 @InitBinder 註解或通過 HandlerAdapter 的配置進行調 整

• org.springframework.validation.Errors / org.springframework.validation.BindingResult
為屬性列表中的命令/ 表單對象的校驗結果,注意檢驗結果參數必須緊跟在命令/ 表單對象的後面

• org.springframework.web.bind.support.SessionStatus
可以通過該類型 status 對象顯式結束表單的處理,這相當於觸發 session 清除其中的通過@SessionAttributes 定義的屬性

請求處理方法返回值的可選類型
• void
此時邏輯視圖名由請求處理方法對應的 URL 確定,如以下的方法:
@RequestMapping("/welcome.do")
public void welcomeHandler() {}
對應的邏輯視圖名為 「 welcome 」

• String
此時邏輯視圖名為返回的字元,如以下的方法:
@RequestMapping(method = RequestMethod.GET)
public String setupForm(@RequestParam("ownerId") int ownerId, ModelMap model) {

Owner owner = this.clinic.loadOwner(ownerId);
model.addAttribute(owner);
return "ownerForm";

}
對應的邏輯視圖名為 「 ownerForm 」

• org.springframework.ui.ModelMap
和返回類型為 void 一樣,邏輯視圖名取決於對應請求的 URL ,如下面的例子:
@RequestMapping("/vets.do")
public ModelMap vetsHandler() {
return new ModelMap(this.clinic.getVets());
}
對應的邏輯視圖名為 「 vets 」 ,返回的 ModelMap 將被作為請求對應的模型對象,可以在 JSP 視圖頁面中訪問到。

• ModelAndView
當然還可以是傳統的 ModelAndView 。

@ModelAttribute
• 作用域:request
• 例如
@RequestMapping("/base/userManageCooper/init.do")
public String handleInit(@ModelAttribute("queryBean") ManagedUser sUser,Model model,){

• 或者
@ModelAttribute("coopMap")// 將coopMap 返回到頁 面
public Map<Long,CooperatorInfo> coopMapItems(){}

• 說明

@ModelAttribute 聲明在屬性上,表示該屬性的value 來源於model 里"queryBean" ,並被保存到model 里@ModelAttribute 聲明在方法上,表示該方法的返回值被保存到model 里

@Cacheable 和@CacheFlush
• @Cacheable :聲明一個方法的返回值應該被緩 存
例如:@Cacheable(modelId = "testCaching")

• @CacheFlush :聲明一個方法是清空緩存的觸發器
例如:@CacheFlush(modelId = "testCaching")

• 說明
要配合緩存處理器使用,參考:

@Resource
• 例如
@Resource
private DataSource dataSource; // inject the bean named 'dataSource'

• 或者

@Resource(name="dataSource")
@Resource(type=DataSource.class)

• 說明
@Resource 默認按bean 的name 進行查找,如果沒有找到會按type 進行查找,
此時與@Autowired 類 似
在沒有為 @Resource 註解顯式指定 name 屬性的前提下,如果將其標注在 BeanFactory 類型、ApplicationContext 類型、ResourceLoader 類型、ApplicationEventPublisher 類型、MessageSource 類型上,那麼 Spring 會自動注入這些實現類的實例,不需要額外的操作。此時 name 屬性不需要指定 ( 或者指定為""),否則注入失敗;
@PostConstruct 和@PreDestroy
• @PostConstruct
在方法上加上註解@PostConstruct ,這個方法就會在Bean 初始化之後被Spring 容器執 行
(註:Bean 初始化包括,實例化Bean ,並裝配Bean 的屬性(依賴注入))。

• @PreDestroy
在方法上加上註解@PreDestroy ,這個方法就會在Bean 被銷毀前被Spring 容器執行。

@Repository
• 與@Controller 、@Service 類似,都是向spring 上下文中注冊bean ,不在贅述。

@Component (不推薦使用)
• @Component
@Component 是所有受Spring 管理組件的通用形式,Spring 還提供了更加細化的註解形式: @Repository 、@Service 、@Controller ,它們分別對應存儲層Bean ,業務層Bean ,和展示層Bean 。
目前版本(2.5 )中,這些註解與@Component 的語義是一樣的,完全通用, 在Spring 以後的版本中可能會給它們追加更多的語義。 所以,我們推薦使用@Repository 、@Service 、@Controller 來替代@Component 。

@Scope
• 例如
@Scope("session")
@Repository()
public class UserSessionBean implementsSerializable {}

• 說明

在使用XML 定義Bean 時,可以通過bean 的scope 屬性來定義一個Bean 的作用范圍,
同樣可以通過@Scope 註解來完成

@Scope中可以指定如下值:
singleton:定義bean的范圍為每個spring容器一個實例(默認值)
prototype:定義bean可以被多次實例化(使用一次就創建一次)
request:定義bean的范圍是http請求(springMVC中有效)
session:定義bean的范圍是http會話(springMVC中有效)
global-session:定義bean的范圍是全局http會話(portlet中有效)

@SessionAttributes
• 說明
Spring 允許我們有選擇地指定 ModelMap 中的哪些屬性需要轉存到 session 中,
以便下一個請求屬對應的 ModelMap 的屬性列表中還能訪問到這些屬性。
這一功能是通過類定義處標注 @SessionAttributes 註解來實現的。
@SessionAttributes 只能聲明在類上,而不能聲明在方法上。
• 例如
@SessionAttributes("currUser") // 將ModelMap 中屬性名為currUser 的屬性
@SessionAttributes()
@SessionAttributes(types = User.class)
@SessionAttributes(types = )
@SessionAttributes(types = ,value=)

@InitBinder
• 說明
如果希望某個屬性編輯器僅作用於特定的 Controller ,
可以在 Controller 中定義一個標注 @InitBinder 註解的方法,
可以在該方法中向 Controller 了注冊若干個屬性編輯器

• 例如
@InitBinder
public void initBinder(WebDataBinder binder) {

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
dateFormat.setLenient(false);
binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, false));

}

@Required
• 例如
@required
public setName(String name){}

• 說明
@ required 負責檢查一個bean在初始化時其聲明的 set方法是否被執行, 當某個被標注了 @Required 的 Setter 方法沒有被調用,則 Spring 在解析的時候會拋出異常,以提醒開發者對相應屬性進行設置。 @Required 註解只能標注在 Setter 方法之上。因為依賴注入的本質是檢查 Setter 方法是否被調用了,而不是真的去檢查屬性是否賦值了以及賦了什麼樣的值。如果將該註解標注在非 setXxxx() 類型的方法則被忽略。

@Qualifier
• 例如
@Autowired
@Qualifier("softService")
private ISoftPMService softPMService;
• 說明
使用@Autowired 時,如果找到多個同一類型的bean,則會拋異常,此時可以使用 @Qualifier("beanName"),明確指定bean的名稱進行注入,此時與 @Resource指定name屬性作用相同。

E. Shiro的 rememberMe 功能使用指導為什麼rememberMe設置了沒作用

官方的文檔有說明,isRemembered和isAuthenticated是互斥的
isRemembered是在伺服器上記錄一個cookie說明你這個用戶登陸過並且被記住了
效果類似於亞馬遜頁面上,他會記住近期登陸過的用戶(Subject)
但是你進行敏感操作的時候還是要重新登錄敲賬號密碼的,也就是必須重新進行Authentication
也就是說如果你的攔截器配置了authc或者其他需要認證之後才能使用的
shiro的rememberMe功能就不起作用了

印象中有一個url攔截器可以過濾這個,不記得名字了

F. spring mvc攔截器與shiro攔截器有什麼區別

springmvc的攔截器是優先順序高於shiro的,shiro就是自定義實現了spring mvc的filter吧,如果足夠牛逼的話是可以不用shiro的,完全可以自己實現安全攔截的

G. spring shiro註解配置不生效

不知道你解決了沒,你是不是用了springmvc,如果使用springmvc的話,在springmvc-servlet.xml文件中也要添加幾行shiro需要使用的代碼,添加內容如下:
<bean class="org.springframework.web.servlet.handler.">
<property name="exceptionMappings">
<props>
<prop key="org.apache.shiro.authz.UnauthorizedException">/403</prop>
</props>
</property>
</bean>
<bean class="org.springframework.aop.framework.autoproxy." depends-on="lifecycleBeanPostProcessor"/>
<bean class="org.apache.shiro.spring.security.interceptor.">
<property name="securityManager" ref="securityManager"/>
</bean>

這樣在使用shiro的許可權註解的時候就可用了

H. shiro session過期後 tomcat會刪除嗎

session從創建到銷毀的時間為session持久化時間,每次請求只會判斷session是否過期,tomcat會定時檢查session是否有效,無效則刪除。

I. shiro做無狀態的token驗證登錄,整體流程是怎麼樣的

需要自主實現oauth,市面上也有現成的,也就是帶著token去請求,然後shiro Filter判斷token有效給予通過。

推薦一套完整的Shiro Demo,免費的。

Shiro介紹文檔:http://www.sojson.com/shiro
Demo已經部署到線上,地址是http://shiro.itboy.net


管理員帳號:admin,密碼:sojson.com 如果密碼錯誤,請用sojson。PS:你可以注冊自己的帳號,然後用管理員賦許可權給你自己的帳號,但是,每20分鍾會把數據初始化一次。建議自己下載源碼,讓Demo跑起來,然後跑的更快。

J. apache shiro 做的哪些事

Apache Shiro 是ASF旗下的一款開源軟體(Shiro發音為「shee-roh」,日語「堡壘(Castle)」的意思),提供了一個強大而靈活的安全框架。可為任何應用提供安全保障— 從命令行應用、移動應用到大型網路及企業應用。

Apache Shiro提供了認證、授權、加密和會話管理功能,將復雜的問題隱藏起來,提供清晰直觀的API使開發者可以很輕松地開發自己的程序安全代碼。並且在實現此目標時無須依賴第三方的框架、容器或服務,當然也能做到與這些環境的整合,使其在任何環境下都可拿來使用。

Shiro將目標集中於Shiro開發團隊所稱的「四大安全基石」-認證(Authentication)、授權(Authorization)、會話管理(Session Management)和加密(Cryptography):

認證(Authentication):用戶身份識別。有時可看作為「登錄(login)」,它是用戶證明自己是誰的一個行為。

授權(Authorization):訪問控制過程,好比決定「認證(who)」可以訪問「什麼(what)」.

會話管理(SessionManagement):管理用戶的會話(sessions),甚至在沒有WEB或EJB容器的環境中。管理用戶與時間相關的狀態。

加密(Cryptography):使用加密演算法保護數據更加安全,防止數據被偷窺。

此外還有一些附加的功能進行支持和加強,例如:

Web支持:利用Shiro的web支持API可以很容易地實現web程序安全;

Caching:Caching在Apache Shiro的API中是一等公民,確保安全認證的動作快速而有效。

並發(Concurrency):Apache Shiro支持多線程;

測試(Testing):支持測試,幫助你開發單元和綜合測試程序確保你的代碼如你所預期的那樣進行安全認證。

「Run As」:允許用戶使用其他用戶身份(如果被允許),這在執行某些管理角本中非常有用。

「Remember Me」:在整個會話周期中(sessions)記住用戶的身份,用戶只需要在程序強制要求登錄的情況下才需要登錄。

閱讀全文

與shiro有效期相關的資料

熱點內容
工程質量維修期限承諾 瀏覽:769
第四屆山東省知識產權新年論壇 瀏覽:176
房產證上沒有使用年限 瀏覽:867
誰創造了拼圖 瀏覽:998
簡單的土地轉讓協議書 瀏覽:708
南京江北新區知識產權告知書 瀏覽:251
工商局廉政談話講話稿 瀏覽:979
轉讓優思明 瀏覽:583
知識產權代理服務協議格式 瀏覽:117
商河縣工商局 瀏覽:810
沈陽冠君知識產權事務所 瀏覽:342
知識產權保障制度總結 瀏覽:950
榆次區工商局電話 瀏覽:981
馬鞍山新康達 瀏覽:448
學校矛盾糾紛處理制度 瀏覽:342
創造性的提出了思想建黨的原則 瀏覽:890
品管圈成果匯報書 瀏覽:381
京韻花園糾紛 瀏覽:895
衛生服務站公共衛生考核方案 瀏覽:62
快遞時效投訴 瀏覽:782