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." );
+        }
+    }
 }