You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@knox.apache.org by di...@apache.org on 2013/09/24 02:50:04 UTC
git commit: knox-136, Knox should support configurable session timeout
Updated Branches:
refs/heads/master 371708bb7 -> d73f730a0
knox-136, Knox should support configurable session timeout
Project: http://git-wip-us.apache.org/repos/asf/incubator-knox/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-knox/commit/d73f730a
Tree: http://git-wip-us.apache.org/repos/asf/incubator-knox/tree/d73f730a
Diff: http://git-wip-us.apache.org/repos/asf/incubator-knox/diff/d73f730a
Branch: refs/heads/master
Commit: d73f730a05ee845bf4ca97423a1b57fcca79a4fb
Parents: 371708b
Author: Dilli Dorai Arumugam <da...@hortonworks.com>
Authored: Mon Sep 23 17:47:57 2013 -0700
Committer: Dilli Dorai Arumugam <da...@hortonworks.com>
Committed: Mon Sep 23 17:47:57 2013 -0700
----------------------------------------------------------------------
.../deploy/impl/ShiroDeploymentContributor.java | 23 ++++++++++++++++++--
gateway-release/home/deployments/sandbox.xml | 9 ++++++++
2 files changed, 30 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-knox/blob/d73f730a/gateway-provider-security-shiro/src/main/java/org/apache/hadoop/gateway/deploy/impl/ShiroDeploymentContributor.java
----------------------------------------------------------------------
diff --git a/gateway-provider-security-shiro/src/main/java/org/apache/hadoop/gateway/deploy/impl/ShiroDeploymentContributor.java b/gateway-provider-security-shiro/src/main/java/org/apache/hadoop/gateway/deploy/impl/ShiroDeploymentContributor.java
index 10a66ac..fe4efa0 100644
--- a/gateway-provider-security-shiro/src/main/java/org/apache/hadoop/gateway/deploy/impl/ShiroDeploymentContributor.java
+++ b/gateway-provider-security-shiro/src/main/java/org/apache/hadoop/gateway/deploy/impl/ShiroDeploymentContributor.java
@@ -17,6 +17,9 @@
*/
package org.apache.hadoop.gateway.deploy.impl;
+import java.util.List;
+import java.util.Map;
+
import org.apache.hadoop.gateway.deploy.DeploymentContext;
import org.apache.hadoop.gateway.deploy.ProviderDeploymentContributorBase;
import org.apache.hadoop.gateway.descriptor.FilterParamDescriptor;
@@ -24,8 +27,8 @@ import org.apache.hadoop.gateway.descriptor.ResourceDescriptor;
import org.apache.hadoop.gateway.topology.Provider;
import org.apache.hadoop.gateway.topology.Service;
import org.jboss.shrinkwrap.api.asset.StringAsset;
-
-import java.util.List;
+import org.jboss.shrinkwrap.descriptor.api.webapp30.WebAppDescriptor;
+import org.jboss.shrinkwrap.descriptor.api.webcommon30.SessionConfigType;
public class ShiroDeploymentContributor extends ProviderDeploymentContributorBase {
@@ -33,6 +36,8 @@ public class ShiroDeploymentContributor extends ProviderDeploymentContributorBas
private static final String SHIRO_FILTER_CLASSNAME = "org.apache.shiro.web.servlet.ShiroFilter";
private static final String POST_FILTER_CLASSNAME = "org.apache.hadoop.gateway.filter.PostAuthenticationFilter";
private static final String COOKIE_FILTER_CLASSNAME = "org.apache.hadoop.gateway.filter.ResponseCookieFilter";
+ private static final String SESSION_TIMEOUT = "sessionTimeout";
+ private static final int DEFAULT_SESSION_TIMEOUT = 30; // 30min
@Override
public String getRole() {
@@ -52,6 +57,20 @@ public class ShiroDeploymentContributor extends ProviderDeploymentContributorBas
// add servletContextListener
context.getWebAppDescriptor().createListener().listenerClass( LISTENER_CLASSNAME );
+
+ // add session timeout
+ int st = DEFAULT_SESSION_TIMEOUT;
+ SessionConfigType<WebAppDescriptor> sessionConfig = context.getWebAppDescriptor().createSessionConfig();
+ Map<String, String> params = provider.getParams();
+ String sts = params.get(SESSION_TIMEOUT);
+ if (sts != null && sts.trim().length() != 0) {
+ st = Integer.valueOf(sts.trim());
+ }
+ if (st <= 0) {
+ // user default session timeout
+ st = DEFAULT_SESSION_TIMEOUT;
+ }
+ sessionConfig.sessionTimeout(st);
// Writing provider specific config out to the war for cluster specific config can be
// accomplished through the DeploymentContext as well. The JBoss shrinkwrap API can be
http://git-wip-us.apache.org/repos/asf/incubator-knox/blob/d73f730a/gateway-release/home/deployments/sandbox.xml
----------------------------------------------------------------------
diff --git a/gateway-release/home/deployments/sandbox.xml b/gateway-release/home/deployments/sandbox.xml
index b7987e3..68eb96a 100644
--- a/gateway-release/home/deployments/sandbox.xml
+++ b/gateway-release/home/deployments/sandbox.xml
@@ -23,6 +23,15 @@
<name>ShiroProvider</name>
<enabled>true</enabled>
<param>
+ <!--
+ session timeout in minutes,
+ defaults to 30mins, if the property value is not defined,,
+ client authentication would expire after this time
+ -->
+ <name>sessionTimeout</name>
+ <value>30</value>
+ </param>
+ <param>
<name>main.ldapRealm</name>
<value>org.apache.shiro.realm.ldap.JndiLdapRealm</value>
</param>