Hi,

Indeed, a session is required to make OAuth work in most cases.
Thanks again for sharing your problem and solution.
Best regards,
Jérôme




2014-02-11 21:58 GMT+01:00 Albert Kam [via Shiro User] <
[email protected]>:

> Turns out to be the issue with noSessionCreation.
> Disabling noSessionCreation will make it work.
>
> In my case though, i still kinda need noSessionCreation,
> so in my signup controller, i just 'skip' the noSessionCreation by
> explicitly enabling session creation though 
> req.setAttribute(DefaultSubjectContext.SESSION_CREATION_ENABLED,
> Boolean.TRUE);
>
> Also i had to reorder the filters, so that /** is at the last of the list.
>
>
>
>
> On Tue, Feb 11, 2014 at 11:37 PM, Albert Kam <[hidden 
> email]<http://user/SendEmail.jtp?type=node&node=7579636&i=0>
> > wrote:
>
>> I'm trying to generate the facebook link through
>> fbClient.getRedirectionUrl(new ShiroWebContext(req, resp), false);
>>
>> And this throwed this exception :
>>
>> org.apache.shiro.subject.support.DisabledSessionException: Session
>> creation has been disabled for the current subject.  This exception
>> indicates that there is either a programming error (using a session when it
>> should never be used) or that Shiro's configuration needs to be adjusted to
>> allow Sessions to be created for the current Subject.  See the
>> org.apache.shiro.subject.support.DisabledSessionException JavaDoc for more.
>>  at
>> org.apache.shiro.subject.support.DelegatingSubject.getSession(DelegatingSubject.java:331)
>> at
>> org.apache.shiro.subject.support.DelegatingSubject.getSession(DelegatingSubject.java:312)
>>  at
>> io.buji.pac4j.ShiroWebContext.setSessionAttribute(ShiroWebContext.java:51)
>> at
>> org.pac4j.oauth.client.BaseOAuth20Client.retrieveAuthorizationUrl(BaseOAuth20Client.java:52)
>>  at
>> org.pac4j.oauth.client.BaseOAuthClient.retrieveRedirectionUrl(BaseOAuthClient.java:92)
>> at org.pac4j.core.client.BaseClient.getRedirectionUrl(BaseClient.java:117)
>>  at
>> web.controller.common.CommonController.signupPageImpl(CommonController.java:77)
>> at
>> web.controller.common.CommonController.access$0(CommonController.java:74)
>>  at
>> web.controller.common.CommonController$1.exec(CommonController.java:70)
>> at web.controller.WebTemplate.execImpl(WebTemplate.java:71)
>>  at web.controller.WebTemplate.execWithoutMwdService(WebTemplate.java:45)
>> at
>> web.controller.common.CommonController.signupPage(CommonController.java:66)
>>
>> My environment is with spring mvc, using custom realm, custom session
>> dao, and with native session.
>>
>> <bean id="sessionManager"
>> class="org.apache.shiro.web.session.mgt.DefaultWebSessionManager">
>>  <property name="globalSessionTimeout" value="xxx" />
>> <property name="sessionDAO" ref="sessionDAO" />
>>  <property name="sessionValidationSchedulerEnabled" value="false" />
>> <property name="sessionIdCookie.domain" value="xxx.com" />
>> </bean>
>>
>> <bean id="securityManager"
>> class="org.apache.shiro.web.mgt.DefaultWebSecurityManager">
>> <property name="sessionMode" value="native" />
>>  <property name="realms">
>> <list>
>> <ref bean="mainRealm" />
>>  </list>
>> </property>
>> <property name="sessionManager" ref="sessionManager" />
>> </bean>
>>
>> And here are buji specific configs :
>>
>> <bean id="facebookClient" class="org.pac4j.oauth.client.FacebookClient">
>>  <constructor-arg name="key" value="myAppId" />
>> <constructor-arg name="secret" value="mySecret" />
>>  </bean>
>>  <bean id="clients" class="org.pac4j.core.client.Clients">
>>  <constructor-arg name="callbackUrl" value="
>> http://myweb.com:8080/social-callback"; />
>>  <constructor-arg name="clients">
>> <list>
>> <ref bean="facebookClient" />
>>  </list>
>> </constructor-arg>
>> </bean>
>>  <bean id="clientsFilter" class="io.buji.pac4j.ClientFilter">
>> <property name="failureUrl" value="/404.html" />
>>  <property name="clients">
>> <ref bean="clients" />
>> </property>
>>  </bean>
>>  <bean id="clientsRealm" class="io.buji.pac4j.ClientRealm">
>>  <property name="defaultRoles" value="ROLE_USER" />
>> <property name="clients">
>>  <ref bean="clients" />
>> </property>
>> </bean>
>>
>> <bean id="shiroFilter"
>> class="org.apache.shiro.spring.web.ShiroFilterFactoryBean">
>>      <property name="securityManager" ref="securityManager"/>
>>      <property name="loginUrl" value="/login"/>
>>     <property name="successUrl" value="/"/>
>>     <property name="unauthorizedUrl" value="/signup"/>
>>     <property name="filterChainDefinitions">
>>         <value>
>>             /login = authc
>>             /logout = noSessionCreation, logout
>>             /** = noSessionCreation, anon
>>             /social-callback = clientsFilter
>>         </value>
>>     </property>
>> </bean>
>>
>> Please note that with this configuration, the normal form-based
>> username-password authentication works perfectly,
>> where a session is created for every successful user login.
>>
>> What did i do wrong ?
>>
>> Thank you ..
>>
>> --
>> Do not pursue the past. Do not lose yourself in the future.
>> The past no longer is. The future has not yet come.
>> Looking deeply at life as it is in the very here and now,
>> the practitioner dwells in stability and freedom.
>> (Thich Nhat Hanh)
>>
>
>
>
> --
> Do not pursue the past. Do not lose yourself in the future.
> The past no longer is. The future has not yet come.
> Looking deeply at life as it is in the very here and now,
> the practitioner dwells in stability and freedom.
> (Thich Nhat Hanh)
>
>
> ------------------------------
>  If you reply to this email, your message will be added to the discussion
> below:
>
> http://shiro-user.582556.n2.nabble.com/pac4j-buji-Session-creation-error-tp7579632p7579636.html
>  To start a new topic under Shiro User, email
> [email protected]
> To unsubscribe from Shiro User, click 
> here<http://shiro-user.582556.n2.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=582556&code=bGVsZXVqQGdtYWlsLmNvbXw1ODI1NTZ8LTExNzY2MzcxMTY=>
> .
> NAML<http://shiro-user.582556.n2.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml>
>




--
View this message in context: 
http://shiro-user.582556.n2.nabble.com/pac4j-buji-Session-creation-error-tp7579632p7579639.html
Sent from the Shiro User mailing list archive at Nabble.com.

Reply via email to