You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@shiro.apache.org by bd...@apache.org on 2016/12/16 00:00:08 UTC
shiro git commit: Fix Guice IT that expects RememberMe to persist
across restarts
Repository: shiro
Updated Branches:
refs/heads/master 9475c99d7 -> dae40161b
Fix Guice IT that expects RememberMe to persist across restarts
Project: http://git-wip-us.apache.org/repos/asf/shiro/repo
Commit: http://git-wip-us.apache.org/repos/asf/shiro/commit/dae40161
Tree: http://git-wip-us.apache.org/repos/asf/shiro/tree/dae40161
Diff: http://git-wip-us.apache.org/repos/asf/shiro/diff/dae40161
Branch: refs/heads/master
Commit: dae40161b014d61b084f2fad409a74d54ea13442
Parents: 9475c99
Author: Brian Demers <bd...@apache.org>
Authored: Thu Dec 15 15:59:57 2016 -0800
Committer: Brian Demers <bd...@apache.org>
Committed: Thu Dec 15 15:59:57 2016 -0800
----------------------------------------------------------------------
.../SampleShiroNativeSessionsServletModule.java | 26 ++++++++++++++++++++
1 file changed, 26 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/shiro/blob/dae40161/samples/guice/src/main/java/org/apache/shiro/samples/guice/SampleShiroNativeSessionsServletModule.java
----------------------------------------------------------------------
diff --git a/samples/guice/src/main/java/org/apache/shiro/samples/guice/SampleShiroNativeSessionsServletModule.java b/samples/guice/src/main/java/org/apache/shiro/samples/guice/SampleShiroNativeSessionsServletModule.java
index eef357f..0926496 100644
--- a/samples/guice/src/main/java/org/apache/shiro/samples/guice/SampleShiroNativeSessionsServletModule.java
+++ b/samples/guice/src/main/java/org/apache/shiro/samples/guice/SampleShiroNativeSessionsServletModule.java
@@ -21,10 +21,15 @@ package org.apache.shiro.samples.guice;
import com.google.inject.Provides;
import com.google.inject.binder.AnnotatedBindingBuilder;
import com.google.inject.name.Names;
+import org.apache.shiro.codec.Base64;
+import org.apache.shiro.config.ConfigurationException;
import org.apache.shiro.config.Ini;
import org.apache.shiro.guice.web.ShiroWebModule;
import org.apache.shiro.realm.text.IniRealm;
import org.apache.shiro.session.mgt.SessionManager;
+import org.apache.shiro.web.mgt.CookieRememberMeManager;
+import org.apache.shiro.web.mgt.DefaultWebSecurityManager;
+import org.apache.shiro.web.mgt.WebSecurityManager;
import org.apache.shiro.web.servlet.Cookie;
import org.apache.shiro.web.servlet.SimpleCookie;
import org.apache.shiro.web.session.mgt.DefaultWebSessionManager;
@@ -73,4 +78,25 @@ public class SampleShiroNativeSessionsServletModule extends ShiroWebModule {
bind(DefaultWebSessionManager.class);
bind(Cookie.class).toInstance(new SimpleCookie("myCookie"));
}
+
+ @Override
+ protected void bindWebSecurityManager(AnnotatedBindingBuilder<? super WebSecurityManager> bind)
+ {
+ try
+ {
+ String cipherKey = loadShiroIni().getSectionProperty( "main", "securityManager.rememberMeManager.cipherKey" );
+
+ DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager();
+ CookieRememberMeManager rememberMeManager = new CookieRememberMeManager();
+ rememberMeManager.setCipherKey( Base64.decode( cipherKey ) );
+ securityManager.setRememberMeManager(rememberMeManager);
+ bind.toInstance(securityManager);
+ }
+ catch ( MalformedURLException e )
+ {
+ // for now just throw, you could just call
+ // super.bindWebSecurityManager(bind) if you do not need rememberMe functionality
+ throw new ConfigurationException( "securityManager.rememberMeManager.cipherKey must be set in shiro.ini." );
+ }
+ }
}