blob: 165ead15f1385bb11ad65020f80554815f43043c [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>AbstractShiroWebConfiguration.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">Apache Shiro :: Support :: Spring</a> &gt; <a href="index.source.html" class="el_package">org.apache.shiro.spring.web.config</a> &gt; <span class="el_source">AbstractShiroWebConfiguration.java</span></div><h1>AbstractShiroWebConfiguration.java</h1><pre class="source lang-java linenums">/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* &quot;License&quot;); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.apache.shiro.spring.web.config;
import org.apache.shiro.config.Ini;
import org.apache.shiro.mgt.RememberMeManager;
import org.apache.shiro.mgt.SessionStorageEvaluator;
import org.apache.shiro.mgt.SessionsSecurityManager;
import org.apache.shiro.mgt.SubjectFactory;
import org.apache.shiro.realm.Realm;
import org.apache.shiro.realm.text.IniRealm;
import org.apache.shiro.session.mgt.SessionManager;
import org.apache.shiro.spring.config.AbstractShiroConfiguration;
import org.apache.shiro.web.mgt.CookieRememberMeManager;
import org.apache.shiro.web.mgt.DefaultWebSecurityManager;
import org.apache.shiro.web.mgt.DefaultWebSessionStorageEvaluator;
import org.apache.shiro.web.mgt.DefaultWebSubjectFactory;
import org.apache.shiro.web.servlet.Cookie;
import org.apache.shiro.web.servlet.SimpleCookie;
import org.apache.shiro.web.session.mgt.DefaultWebSessionManager;
import org.apache.shiro.web.session.mgt.ServletContainerSessionManager;
import org.springframework.beans.factory.annotation.Value;
/**
* @since 1.4.0
*/
<span class="fc" id="L43">public class AbstractShiroWebConfiguration extends AbstractShiroConfiguration {</span>
@Value(&quot;#{ @environment['shiro.sessionManager.sessionIdCookieEnabled'] ?: true }&quot;)
protected boolean sessionIdCookieEnabled;
@Value(&quot;#{ @environment['shiro.sessionManager.sessionIdUrlRewritingEnabled'] ?: true }&quot;)
protected boolean sessionIdUrlRewritingEnabled;
@Value(&quot;#{ @environment['shiro.userNativeSessionManager'] ?: false }&quot;)
protected boolean useNativeSessionManager;
// Session Cookie info
@Value(&quot;#{ @environment['shiro.sessionManager.cookie.name'] ?: T(org.apache.shiro.web.servlet.ShiroHttpSession).DEFAULT_SESSION_ID_NAME }&quot;)
protected String sessionIdCookieName;
@Value(&quot;#{ @environment['shiro.sessionManager.cookie.maxAge'] ?: T(org.apache.shiro.web.servlet.SimpleCookie).DEFAULT_MAX_AGE }&quot;)
protected int sessionIdCookieMaxAge;
@Value(&quot;#{ @environment['shiro.sessionManager.cookie.domain'] ?: null }&quot;)
protected String sessionIdCookieDomain;
@Value(&quot;#{ @environment['shiro.sessionManager.cookie.path'] ?: null }&quot;)
protected String sessionIdCookiePath;
@Value(&quot;#{ @environment['shiro.sessionManager.cookie.secure'] ?: false }&quot;)
protected boolean sessionIdCookieSecure;
// RememberMe Cookie info
@Value(&quot;#{ @environment['shiro.rememberMeManager.cookie.name'] ?: T(org.apache.shiro.web.mgt.CookieRememberMeManager).DEFAULT_REMEMBER_ME_COOKIE_NAME }&quot;)
protected String rememberMeCookieName;
@Value(&quot;#{ @environment['shiro.rememberMeManager.cookie.maxAge'] ?: T(org.apache.shiro.web.servlet.Cookie).ONE_YEAR }&quot;)
protected int rememberMeCookieMaxAge;
@Value(&quot;#{ @environment['shiro.rememberMeManager.cookie.domain'] ?: null }&quot;)
protected String rememberMeCookieDomain;
@Value(&quot;#{ @environment['shiro.rememberMeManager.cookie.path'] ?: null }&quot;)
protected String rememberMeCookiePath;
@Value(&quot;#{ @environment['shiro.rememberMeManager.cookie.secure'] ?: false }&quot;)
protected boolean rememberMeCookieSecure;
protected SessionManager nativeSessionManager() {
<span class="nc" id="L92"> DefaultWebSessionManager webSessionManager = new DefaultWebSessionManager();</span>
<span class="nc" id="L93"> webSessionManager.setSessionIdCookieEnabled(sessionIdCookieEnabled);</span>
<span class="nc" id="L94"> webSessionManager.setSessionIdUrlRewritingEnabled(sessionIdUrlRewritingEnabled);</span>
<span class="nc" id="L95"> webSessionManager.setSessionIdCookie(sessionCookieTemplate());</span>
<span class="nc" id="L97"> webSessionManager.setSessionFactory(sessionFactory());</span>
<span class="nc" id="L98"> webSessionManager.setSessionDAO(sessionDAO());</span>
<span class="nc" id="L99"> webSessionManager.setDeleteInvalidSessions(sessionManagerDeleteInvalidSessions);</span>
<span class="nc" id="L101"> return webSessionManager;</span>
}
protected Cookie sessionCookieTemplate() {
<span class="fc" id="L105"> return buildCookie(</span>
sessionIdCookieName,
sessionIdCookieMaxAge,
sessionIdCookiePath,
sessionIdCookieDomain,
sessionIdCookieSecure);
}
protected Cookie rememberMeCookieTemplate() {
<span class="fc" id="L114"> return buildCookie(</span>
rememberMeCookieName,
rememberMeCookieMaxAge,
rememberMeCookiePath,
rememberMeCookieDomain,
rememberMeCookieSecure);
}
protected Cookie buildCookie(String name, int maxAge, String path, String domain, boolean secure) {
<span class="fc" id="L123"> Cookie cookie = new SimpleCookie(name);</span>
<span class="fc" id="L124"> cookie.setHttpOnly(true);</span>
<span class="fc" id="L125"> cookie.setMaxAge(maxAge);</span>
<span class="fc" id="L126"> cookie.setPath(path);</span>
<span class="fc" id="L127"> cookie.setDomain(domain);</span>
<span class="fc" id="L128"> cookie.setSecure(secure);</span>
<span class="fc" id="L130"> return cookie;</span>
}
@Override
protected SessionManager sessionManager() {
<span class="pc bpc" id="L135" title="1 of 2 branches missed."> if (useNativeSessionManager) {</span>
<span class="nc" id="L136"> return nativeSessionManager();</span>
}
<span class="fc" id="L138"> return new ServletContainerSessionManager();</span>
}
protected RememberMeManager rememberMeManager() {
<span class="fc" id="L142"> CookieRememberMeManager cookieRememberMeManager = new CookieRememberMeManager();</span>
<span class="fc" id="L143"> cookieRememberMeManager.setCookie(rememberMeCookieTemplate());</span>
<span class="fc" id="L144"> return cookieRememberMeManager;</span>
}
@Override
protected SubjectFactory subjectFactory() {
<span class="fc" id="L149"> return new DefaultWebSubjectFactory();</span>
}
@Override
protected SessionStorageEvaluator sessionStorageEvaluator() {
<span class="fc" id="L154"> return new DefaultWebSessionStorageEvaluator();</span>
}
protected SessionsSecurityManager createSecurityManager() {
<span class="fc" id="L159"> DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager();</span>
<span class="fc" id="L160"> securityManager.setSubjectDAO(subjectDAO());</span>
<span class="fc" id="L161"> securityManager.setSubjectFactory(subjectFactory());</span>
<span class="fc" id="L162"> securityManager.setRememberMeManager(rememberMeManager());</span>
<span class="fc" id="L164"> return securityManager;</span>
}
protected ShiroFilterChainDefinition shiroFilterChainDefinition() {
<span class="fc" id="L168"> DefaultShiroFilterChainDefinition chainDefinition = new DefaultShiroFilterChainDefinition();</span>
<span class="fc" id="L169"> chainDefinition.addPathDefinition(&quot;/**&quot;, &quot;authc&quot;);</span>
<span class="fc" id="L170"> return chainDefinition;</span>
}
}
</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.3.201901230119</span></div></body></html>