<!DOCTYPE HTML>
<html lang="en">
<head>
<title>Source code</title>
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
</head>
<body>
<main role="main">
<div class="sourceContainer">
<pre><span class="sourceLineNo">001</span><a id="line.1">/*</a>
<span class="sourceLineNo">002</span><a id="line.2"> * Licensed to the Apache Software Foundation (ASF) under one</a>
<span class="sourceLineNo">003</span><a id="line.3"> * or more contributor license agreements.  See the NOTICE file</a>
<span class="sourceLineNo">004</span><a id="line.4"> * distributed with this work for additional information</a>
<span class="sourceLineNo">005</span><a id="line.5"> * regarding copyright ownership.  The ASF licenses this file</a>
<span class="sourceLineNo">006</span><a id="line.6"> * to you under the Apache License, Version 2.0 (the</a>
<span class="sourceLineNo">007</span><a id="line.7"> * "License"); you may not use this file except in compliance</a>
<span class="sourceLineNo">008</span><a id="line.8"> * with the License.  You may obtain a copy of the License at</a>
<span class="sourceLineNo">009</span><a id="line.9"> *</a>
<span class="sourceLineNo">010</span><a id="line.10"> *     http://www.apache.org/licenses/LICENSE-2.0</a>
<span class="sourceLineNo">011</span><a id="line.11"> *</a>
<span class="sourceLineNo">012</span><a id="line.12"> * Unless required by applicable law or agreed to in writing,</a>
<span class="sourceLineNo">013</span><a id="line.13"> * software distributed under the License is distributed on an</a>
<span class="sourceLineNo">014</span><a id="line.14"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</a>
<span class="sourceLineNo">015</span><a id="line.15"> * KIND, either express or implied.  See the License for the</a>
<span class="sourceLineNo">016</span><a id="line.16"> * specific language governing permissions and limitations</a>
<span class="sourceLineNo">017</span><a id="line.17"> * under the License.</a>
<span class="sourceLineNo">018</span><a id="line.18"> */</a>
<span class="sourceLineNo">019</span><a id="line.19">package org.apache.shiro.web.mgt;</a>
<span class="sourceLineNo">020</span><a id="line.20"></a>
<span class="sourceLineNo">021</span><a id="line.21">import org.apache.shiro.mgt.DefaultSubjectFactory;</a>
<span class="sourceLineNo">022</span><a id="line.22">import org.apache.shiro.mgt.SecurityManager;</a>
<span class="sourceLineNo">023</span><a id="line.23">import org.apache.shiro.session.Session;</a>
<span class="sourceLineNo">024</span><a id="line.24">import org.apache.shiro.subject.PrincipalCollection;</a>
<span class="sourceLineNo">025</span><a id="line.25">import org.apache.shiro.subject.Subject;</a>
<span class="sourceLineNo">026</span><a id="line.26">import org.apache.shiro.subject.SubjectContext;</a>
<span class="sourceLineNo">027</span><a id="line.27">import org.apache.shiro.web.subject.WebSubjectContext;</a>
<span class="sourceLineNo">028</span><a id="line.28">import org.apache.shiro.web.subject.support.WebDelegatingSubject;</a>
<span class="sourceLineNo">029</span><a id="line.29"></a>
<span class="sourceLineNo">030</span><a id="line.30">import javax.servlet.ServletRequest;</a>
<span class="sourceLineNo">031</span><a id="line.31">import javax.servlet.ServletResponse;</a>
<span class="sourceLineNo">032</span><a id="line.32">import org.apache.shiro.web.subject.WebSubject;</a>
<span class="sourceLineNo">033</span><a id="line.33"></a>
<span class="sourceLineNo">034</span><a id="line.34">/**</a>
<span class="sourceLineNo">035</span><a id="line.35"> * A {@code SubjectFactory} implementation that creates {@link WebDelegatingSubject} instances.</a>
<span class="sourceLineNo">036</span><a id="line.36"> * &lt;p/&gt;</a>
<span class="sourceLineNo">037</span><a id="line.37"> * {@code WebDelegatingSubject} instances are required if Request/Response objects are to be maintained across</a>
<span class="sourceLineNo">038</span><a id="line.38"> * threads when using the {@code Subject} {@link Subject#associateWith(java.util.concurrent.Callable) createCallable}</a>
<span class="sourceLineNo">039</span><a id="line.39"> * and {@link Subject#associateWith(Runnable) createRunnable} methods.</a>
<span class="sourceLineNo">040</span><a id="line.40"> *</a>
<span class="sourceLineNo">041</span><a id="line.41"> * @since 1.0</a>
<span class="sourceLineNo">042</span><a id="line.42"> */</a>
<span class="sourceLineNo">043</span><a id="line.43">public class DefaultWebSubjectFactory extends DefaultSubjectFactory {</a>
<span class="sourceLineNo">044</span><a id="line.44"></a>
<span class="sourceLineNo">045</span><a id="line.45">    public DefaultWebSubjectFactory() {</a>
<span class="sourceLineNo">046</span><a id="line.46">        super();</a>
<span class="sourceLineNo">047</span><a id="line.47">    }</a>
<span class="sourceLineNo">048</span><a id="line.48"></a>
<span class="sourceLineNo">049</span><a id="line.49">    public Subject createSubject(SubjectContext context) {</a>
<span class="sourceLineNo">050</span><a id="line.50">        //SHIRO-646</a>
<span class="sourceLineNo">051</span><a id="line.51">        //Check if the existing subject is NOT a WebSubject. If it isn't, then call super.createSubject instead.</a>
<span class="sourceLineNo">052</span><a id="line.52">        //Creating a WebSubject from a non-web Subject will cause the ServletRequest and ServletResponse to be null, which wil fail when creating a session.</a>
<span class="sourceLineNo">053</span><a id="line.53">        boolean isNotBasedOnWebSubject = context.getSubject() != null &amp;&amp; !(context.getSubject() instanceof WebSubject);</a>
<span class="sourceLineNo">054</span><a id="line.54">        if (!(context instanceof WebSubjectContext) || isNotBasedOnWebSubject) {</a>
<span class="sourceLineNo">055</span><a id="line.55">            return super.createSubject(context);</a>
<span class="sourceLineNo">056</span><a id="line.56">        }</a>
<span class="sourceLineNo">057</span><a id="line.57">        WebSubjectContext wsc = (WebSubjectContext) context;</a>
<span class="sourceLineNo">058</span><a id="line.58">        SecurityManager securityManager = wsc.resolveSecurityManager();</a>
<span class="sourceLineNo">059</span><a id="line.59">        Session session = wsc.resolveSession();</a>
<span class="sourceLineNo">060</span><a id="line.60">        boolean sessionEnabled = wsc.isSessionCreationEnabled();</a>
<span class="sourceLineNo">061</span><a id="line.61">        PrincipalCollection principals = wsc.resolvePrincipals();</a>
<span class="sourceLineNo">062</span><a id="line.62">        boolean authenticated = wsc.resolveAuthenticated();</a>
<span class="sourceLineNo">063</span><a id="line.63">        String host = wsc.resolveHost();</a>
<span class="sourceLineNo">064</span><a id="line.64">        ServletRequest request = wsc.resolveServletRequest();</a>
<span class="sourceLineNo">065</span><a id="line.65">        ServletResponse response = wsc.resolveServletResponse();</a>
<span class="sourceLineNo">066</span><a id="line.66"></a>
<span class="sourceLineNo">067</span><a id="line.67">        return new WebDelegatingSubject(principals, authenticated, host, session, sessionEnabled,</a>
<span class="sourceLineNo">068</span><a id="line.68">                request, response, securityManager);</a>
<span class="sourceLineNo">069</span><a id="line.69">    }</a>
<span class="sourceLineNo">070</span><a id="line.70"></a>
<span class="sourceLineNo">071</span><a id="line.71">    /**</a>
<span class="sourceLineNo">072</span><a id="line.72">     * @deprecated since 1.2 - override {@link #createSubject(org.apache.shiro.subject.SubjectContext)} directly if you</a>
<span class="sourceLineNo">073</span><a id="line.73">     *             need to instantiate a custom {@link Subject} class.</a>
<span class="sourceLineNo">074</span><a id="line.74">     */</a>
<span class="sourceLineNo">075</span><a id="line.75">    @Deprecated</a>
<span class="sourceLineNo">076</span><a id="line.76">    protected Subject newSubjectInstance(PrincipalCollection principals, boolean authenticated,</a>
<span class="sourceLineNo">077</span><a id="line.77">                                         String host, Session session,</a>
<span class="sourceLineNo">078</span><a id="line.78">                                         ServletRequest request, ServletResponse response,</a>
<span class="sourceLineNo">079</span><a id="line.79">                                         SecurityManager securityManager) {</a>
<span class="sourceLineNo">080</span><a id="line.80">        return new WebDelegatingSubject(principals, authenticated, host, session, true,</a>
<span class="sourceLineNo">081</span><a id="line.81">                request, response, securityManager);</a>
<span class="sourceLineNo">082</span><a id="line.82">    }</a>
<span class="sourceLineNo">083</span><a id="line.83">}</a>




























































</pre>
</div>
</main>
</body>
</html>
