shimingxy 5 năm trước cách đây
mục cha
commit
d421ac07ca
20 tập tin đã thay đổi với 753 bổ sung120 xóa
  1. 1 1
      maxkey-core/src/main/java/org/maxkey/domain/Navigations.java
  2. 7 2
      maxkey-core/src/main/java/org/maxkey/domain/apps/Applications.java
  3. 1 1
      maxkey-core/src/main/java/org/maxkey/domain/apps/OAuth20Details.java
  4. 7 6
      maxkey-core/src/test/java/com/connsec/crypto/SCryptPasswordEncoderTest.java
  5. BIN
      maxkey-lib/other/mybatis-jpa-extra-1.0.jar
  6. 0 2
      maxkey-protocols/maxkey-protocol-cas/bin/main/.gitignore
  7. 0 1
      maxkey-protocols/maxkey-protocol-cas/bin/test/.gitignore
  8. 0 2
      maxkey-protocols/maxkey-protocol-desktop/bin/main/.gitignore
  9. 0 2
      maxkey-protocols/maxkey-protocol-extendapi/bin/main/.gitignore
  10. 0 2
      maxkey-protocols/maxkey-protocol-formbased/bin/main/.gitignore
  11. 0 2
      maxkey-protocols/maxkey-protocol-ltpa/bin/main/.gitignore
  12. 0 2
      maxkey-protocols/maxkey-protocol-oauth-2.0/bin/main/.gitignore
  13. 728 0
      maxkey-protocols/maxkey-protocol-oauth-2.0/bin/main/org/springframework/security/oauth2/spring-security-oauth2-1.0.xsd
  14. 0 2
      maxkey-protocols/maxkey-protocol-saml-2.0/bin/main/.gitignore
  15. 0 2
      maxkey-protocols/maxkey-protocol-tokenbased/bin/main/.gitignore
  16. 1 3
      maxkey-web-manage/.settings/org.eclipse.core.resources.prefs
  17. 0 81
      maxkey-web-manage/src/main/java/org/maxkey/tasks/report/LoginDayReport.java
  18. 4 6
      maxkey-web-manage/src/main/resources/spring/maxkey-mgt-task.xml
  19. 2 1
      maxkey-web-manage/src/main/resources/templates/views/groupapp/addGroupAppsList.ftl
  20. 2 2
      sql/secdb-20160918.sql

+ 1 - 1
maxkey-core/src/main/java/org/maxkey/domain/Navigations.java

@@ -149,7 +149,7 @@ public class Navigations extends JpaBaseDomain  implements java.io.Serializable
 		return "Navigations [name=" + name + ", url=" + url + ", type=" + type
 				+ ", target=" + target + ", pId=" + pId + ", pName=" + pName
 				+ ", xPath=" + xPath + ", hasChild=" + hasChild
-				+ ", sortOrder=" + sortOrder + ", visible=" + visible
+				+", visible=" + visible
 				+ ", childNavs=" + childNavs + "]";
 	}
 

+ 7 - 2
maxkey-core/src/main/java/org/maxkey/domain/apps/Applications.java

@@ -106,7 +106,7 @@ public class Applications extends JpaBaseDomain implements Serializable{
 
 	protected Accounts appUser;
 	
-	protected int sortOrder;
+	protected int sortIndex;
 	
 	protected String description;
 	
@@ -242,8 +242,13 @@ public class Applications extends JpaBaseDomain implements Serializable{
 	}
 
 
+	public int getSortIndex() {
+		return sortIndex;
+	}
 
-
+	public void setSortIndex(int sortIndex) {
+		this.sortIndex = sortIndex;
+	}
 
 	/**
 	 * @param icon the icon to set

+ 1 - 1
maxkey-core/src/main/java/org/maxkey/domain/apps/OAuth20Details.java

@@ -64,7 +64,7 @@ public class OAuth20Details  extends Applications {
 		this.setIcon(application.getIcon());
 		this.clientId=application.getId();
 		
-		this.setSortOrder(application.getSortOrder());
+		this.setSortIndex(application.getSortIndex());
 		this.setVendor(application.getVendor());
 		this.setVendorUrl(application.getVendorUrl());
 		

+ 7 - 6
maxkey-core/src/test/java/com/connsec/crypto/SCryptPasswordEncoderTest.java

@@ -1,6 +1,6 @@
 package com.connsec.crypto;
 
-import org.springframework.security.crypto.scrypt.SCryptPasswordEncoder;
+import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
 
 public class SCryptPasswordEncoderTest {
 
@@ -10,11 +10,12 @@ public class SCryptPasswordEncoderTest {
 
 	public static void main(String[] args) {
 		// TODO Auto-generated method stub
-		SCryptPasswordEncoder pe=new SCryptPasswordEncoder();
-		String c="$e0801$7Holo9EgzBeg5xf/WLZu3/5IQwOyEPDLJPgMXkF9jnekBrbQUMt4CF9O2trkz3zBCnCLpUMR437q/AjQ5TTToA==$oYB8KRSxAsxkKkt5r79W6r6P0wTUcKwGye1ivXRN0Ts="
-		;
-				System.out.println(pe.encode("shimingxy")+"_password");
-				System.out.println(pe.matches("shimingxy"+"_password", c));
+		BCryptPasswordEncoder pe=new BCryptPasswordEncoder();
+		//String c="$e0801$7Holo9EgzBeg5xf/WLZu3/5IQwOyEPDLJPgMXkF9jnekBrbQUMt4CF9O2trkz3zBCnCLpUMR437q/AjQ5TTToA==$oYB8KRSxAsxkKkt5r79W6r6P0wTUcKwGye1ivXRN0Ts="
+		//;
+		System.out.println(pe.encode("admin"));
+			//	System.out.println(pe.encode("shimingxy")+"_password");
+				//System.out.println(pe.matches("shimingxy"+"_password", c));
 	}
 
 }

BIN
maxkey-lib/other/mybatis-jpa-extra-1.0.jar


+ 0 - 2
maxkey-protocols/maxkey-protocol-cas/bin/main/.gitignore

@@ -1,2 +0,0 @@
-/META-INF/
-/org/

+ 0 - 1
maxkey-protocols/maxkey-protocol-cas/bin/test/.gitignore

@@ -1 +0,0 @@
-/com/

+ 0 - 2
maxkey-protocols/maxkey-protocol-desktop/bin/main/.gitignore

@@ -1,2 +0,0 @@
-/META-INF/
-/org/

+ 0 - 2
maxkey-protocols/maxkey-protocol-extendapi/bin/main/.gitignore

@@ -1,2 +0,0 @@
-/META-INF/
-/org/

+ 0 - 2
maxkey-protocols/maxkey-protocol-formbased/bin/main/.gitignore

@@ -1,2 +0,0 @@
-/META-INF/
-/org/

+ 0 - 2
maxkey-protocols/maxkey-protocol-ltpa/bin/main/.gitignore

@@ -1,2 +0,0 @@
-/META-INF/
-/org/

+ 0 - 2
maxkey-protocols/maxkey-protocol-oauth-2.0/bin/main/.gitignore

@@ -1,2 +0,0 @@
-/META-INF/
-/org/

+ 728 - 0
maxkey-protocols/maxkey-protocol-oauth-2.0/bin/main/org/springframework/security/oauth2/spring-security-oauth2-1.0.xsd

@@ -0,0 +1,728 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema xmlns="http://www.springframework.org/schema/security/oauth2" xmlns:xs="http://www.w3.org/2001/XMLSchema"
+	xmlns:beans="http://www.springframework.org/schema/beans" targetNamespace="http://www.springframework.org/schema/security/oauth2"
+	elementFormDefault="qualified" attributeFormDefault="unqualified">
+
+	<xs:import namespace="http://www.springframework.org/schema/beans" schemaLocation="http://www.springframework.org/schema/beans/spring-beans-3.1.xsd" />
+
+	<xs:element name="rest-template">
+		<xs:annotation>
+			<xs:documentation>
+				Creates an OAuth2RestTemplate with all the pieces needed to connect to a remote resource from
+				a web
+				application. Injects request and session-scoped beans into the template, so can only be
+				used in the context of a web
+				request.
+			</xs:documentation>
+		</xs:annotation>
+		<xs:complexType>
+			<xs:complexContent>
+				<xs:extension base="beans:identifiedType">
+					<xs:sequence>
+						<xs:element ref="beans:description" minOccurs="0" />
+						<xs:choice minOccurs="0" maxOccurs="unbounded">
+							<xs:element ref="beans:property" />
+						</xs:choice>
+					</xs:sequence>
+					<xs:attribute name="resource">
+						<xs:annotation>
+							<xs:documentation>
+								The OAuth2ProtectedResourceDetails governing the configuration of this client. Mandatory.
+							</xs:documentation>
+						</xs:annotation>
+					</xs:attribute>
+					<xs:attribute name="access-token-provider" type="xs:string">
+						<xs:annotation>
+							<xs:documentation>
+								The reference to the bean that manages access token acquisition. Optional (defaults to a chain
+								including common grant types from the spec).
+							</xs:documentation>
+						</xs:annotation>
+					</xs:attribute>
+				</xs:extension>
+			</xs:complexContent>
+		</xs:complexType>
+	</xs:element>
+
+	<xs:element name="authorization-server">
+		<xs:annotation>
+			<xs:documentation>
+				Specifies that the oauth 2 authorization and token
+				endpoints should be created in the application
+				context. These are
+				implemented as regular Spring @Controller beans, so as long as the
+				default Spring MVC set up in
+				present in the application
+				the endpoints should work (at /oauth/authorization and /oauth/token by
+				default).
+			</xs:documentation>
+		</xs:annotation>
+		<xs:complexType>
+
+			<xs:sequence>
+				<xs:element name="authorization-code" minOccurs="0" maxOccurs="1">
+					<xs:annotation>
+						<xs:documentation>
+							The configuration of the authorization code
+							mechanism. This
+							mechanism enables a way for clients to
+							obtain an
+							access token by obtaining an authorization code.
+						</xs:documentation>
+					</xs:annotation>
+					<xs:complexType>
+						<xs:attribute name="disabled" type="xs:boolean">
+							<xs:annotation>
+								<xs:documentation>
+									Whether to disable the authorization code
+									mechanism.
+								</xs:documentation>
+							</xs:annotation>
+						</xs:attribute>
+						<xs:attribute name="authorization-code-services-ref" type="xs:string">
+							<xs:annotation>
+								<xs:documentation>
+									The reference to the bean that defines the
+									authorization code
+									services. Default value is an
+									instance of
+									"org.springframework.security.oauth2.provider.authorization_code.InMemoryAuthorizationCodeServices".
+								</xs:documentation>
+							</xs:annotation>
+						</xs:attribute>
+					</xs:complexType>
+				</xs:element>
+				<xs:element name="implicit" minOccurs="0" maxOccurs="1">
+					<xs:annotation>
+						<xs:documentation>
+							The configuration of the client credentials
+							grant type.
+						</xs:documentation>
+					</xs:annotation>
+					<xs:complexType>
+						<xs:attribute name="disabled" type="xs:boolean">
+							<xs:annotation>
+								<xs:documentation>
+									Whether to disable the implicit grant type
+								</xs:documentation>
+							</xs:annotation>
+						</xs:attribute>
+					</xs:complexType>
+				</xs:element>
+				<xs:element name="refresh-token" minOccurs="0" maxOccurs="1">
+					<xs:annotation>
+						<xs:documentation>
+							The configuration of the refresh token grant
+							type.
+						</xs:documentation>
+					</xs:annotation>
+					<xs:complexType>
+						<xs:attribute name="disabled" type="xs:boolean">
+							<xs:annotation>
+								<xs:documentation>
+									Whether to disable the refresh token grant
+									type
+								</xs:documentation>
+							</xs:annotation>
+						</xs:attribute>
+					</xs:complexType>
+				</xs:element>
+				<xs:element name="client-credentials" minOccurs="0" maxOccurs="1">
+					<xs:annotation>
+						<xs:documentation>
+							The configuration of the client credentials
+							grant type.
+						</xs:documentation>
+					</xs:annotation>
+					<xs:complexType>
+						<xs:attribute name="disabled" type="xs:boolean">
+							<xs:annotation>
+								<xs:documentation>
+									Whether to disable the refresh token grant
+									type
+								</xs:documentation>
+							</xs:annotation>
+						</xs:attribute>
+					</xs:complexType>
+				</xs:element>
+				<xs:element name="password" minOccurs="0" maxOccurs="1">
+					<xs:annotation>
+						<xs:documentation>
+							The configuration of the resource owner password
+							grant type.
+						</xs:documentation>
+					</xs:annotation>
+					<xs:complexType>
+						<xs:attribute name="disabled" type="xs:boolean">
+							<xs:annotation>
+								<xs:documentation>
+									Whether to disable the refresh token grant
+									type
+								</xs:documentation>
+							</xs:annotation>
+						</xs:attribute>
+						<xs:attribute name="authentication-manager-ref" type="xs:string">
+							<xs:annotation>
+								<xs:documentation>
+									A reference to an authentication manager that
+									can be used to
+									authenticate the resource owner
+								</xs:documentation>
+							</xs:annotation>
+						</xs:attribute>
+					</xs:complexType>
+				</xs:element>
+				<xs:element name="custom-grant" minOccurs="0" maxOccurs="unbounded">
+					<xs:annotation>
+						<xs:documentation>
+							The configuration of your custom grant type.
+						</xs:documentation>
+					</xs:annotation>
+					<xs:complexType>
+						<xs:attribute name="disabled" type="xs:boolean">
+							<xs:annotation>
+								<xs:documentation>
+									Whether to disable this grant
+									type
+								</xs:documentation>
+							</xs:annotation>
+						</xs:attribute>
+						<xs:attribute name="token-granter-ref" type="xs:string" use="required">
+							<xs:annotation>
+								<xs:documentation>
+									A reference to your token granter
+								</xs:documentation>
+							</xs:annotation>
+						</xs:attribute>
+					</xs:complexType>
+				</xs:element>
+			</xs:sequence>
+			<xs:attribute name="client-details-service-ref" type="xs:string">
+				<xs:annotation>
+					<xs:documentation>
+						The reference to the bean that defines the client
+						details service.
+					</xs:documentation>
+				</xs:annotation>
+			</xs:attribute>
+			<xs:attribute name="token-endpoint-url" type="xs:string">
+				<xs:annotation>
+					<xs:documentation>
+						The URL at which a request for an access token
+						will be serviced.
+						Default value: "/oauth/token"
+					</xs:documentation>
+				</xs:annotation>
+			</xs:attribute>
+			<xs:attribute name="authorization-endpoint-url" type="xs:string">
+				<xs:annotation>
+					<xs:documentation>
+						The URL at which a user is redirected for
+						authorization. Default
+						value: "/oauth/authorize"
+					</xs:documentation>
+				</xs:annotation>
+			</xs:attribute>
+
+			<!--the following attributes are less used -->
+			<xs:attribute name="token-granter-ref" type="xs:string">
+				<xs:annotation>
+					<xs:documentation>
+						The reference to the bean that defines the
+						granter of different oauth
+						token types.
+					</xs:documentation>
+				</xs:annotation>
+			</xs:attribute>
+
+			<xs:attribute name="implicit-grant-service-ref" type="xs:string">
+				<xs:annotation>
+					<xs:documentation>
+						The reference to the bean that defines the
+						implicit grant service.
+					</xs:documentation>
+				</xs:annotation>
+			</xs:attribute>
+			
+			<xs:attribute name="token-services-ref" type="xs:string">
+				<xs:annotation>
+					<xs:documentation>
+						The reference to the bean that defines the token
+						services. Default
+						value is an instance of
+						"org.springframework.security.oauth2.provider.token.DefaultTokenServices".
+					</xs:documentation>
+				</xs:annotation>
+			</xs:attribute>
+
+			<xs:attribute name="authorization-request-manager-ref" type="xs:string">
+				<xs:annotation>
+					<xs:documentation>
+						The reference to the bean that defines the manager for
+						authorization requests from the input
+						parameters (e.g. request parameters).
+						Default
+						value is an
+						instance of
+						"org.springframework.security.oauth2.provider.token.DefaultAuthorizationRequestManager".
+					</xs:documentation>
+				</xs:annotation>
+			</xs:attribute>
+
+			<xs:attribute name="user-approval-handler-ref" type="xs:string">
+				<xs:annotation>
+					<xs:documentation>
+						Reference to a bean that handles user approval decisions. Using this strategy servers can
+						selectively skip the approval process depending on decisions in the past or on the type of client.
+					</xs:documentation>
+				</xs:annotation>
+			</xs:attribute>
+
+			<xs:attribute name="user-approval-page" type="xs:string">
+				<xs:annotation>
+					<xs:documentation>
+						The URL of the page that handles the user
+						approval form (if needed, depending on the grant type).
+						The default is "forward:/oauth/confirm_access" which is not handled
+						by the authorization endpoint, so normally you
+						will have to supply a handler
+						for this path.
+					</xs:documentation>
+				</xs:annotation>
+			</xs:attribute>
+
+			<xs:attribute name="error-page" type="xs:string">
+				<xs:annotation>
+					<xs:documentation>
+						The URL of the page that handles errors (default forward:/oauth/error).
+					</xs:documentation>
+				</xs:annotation>
+			</xs:attribute>
+
+			<xs:attribute name="approval-parameter-name" type="xs:string">
+				<xs:annotation>
+					<xs:documentation>
+						The name of the form parameter that is used to
+						indicate user
+						approval of the client
+						authentication
+						request.
+						Default value: "user_oauth_approval".
+					</xs:documentation>
+				</xs:annotation>
+			</xs:attribute>
+
+			<xs:attribute name="redirect-resolver-ref" type="xs:string">
+				<xs:annotation>
+					<xs:documentation>
+						The reference to the bean that defines the
+						redirect resolver, used
+						during the user
+						authorization.
+						Default
+						value is an instance of
+						"org.springframework.security.oauth2.provider.authorization_code.DefaultRedirectResolver".
+					</xs:documentation>
+				</xs:annotation>
+			</xs:attribute>
+
+		</xs:complexType>
+	</xs:element>
+
+	<xs:element name="resource-server">
+		<xs:annotation>
+			<xs:documentation>
+				Specifies that there are oauth 2 protected resources in
+				the application context. This element
+				has an
+				id which is the bean id of the filter created. The filter
+				should be added to the Spring Security filter chain at
+				position before="PRE_AUTH_FILTER"
+			</xs:documentation>
+		</xs:annotation>
+		<xs:complexType>
+			<xs:complexContent>
+				<xs:extension base="beans:identifiedType">
+
+					<xs:attribute name="resource-id" type="xs:string">
+						<xs:annotation>
+							<xs:documentation>
+								The resource id that is protected by this filter
+								if any. If empty or
+								absent then all resource ids
+								are allowed,
+								otherwise
+								only tokens which are granted to a client that contains
+								this reosurce
+								id will be legal.
+							</xs:documentation>
+						</xs:annotation>
+					</xs:attribute>
+
+					<xs:attribute name="token-services-ref" type="xs:string">
+						<xs:annotation>
+							<xs:documentation>
+								The reference to the bean that defines the token
+								services. Default
+								value is an instance of
+								"org.springframework.security.oauth2.provider.token.DefaultTokenServices".
+							</xs:documentation>
+						</xs:annotation>
+					</xs:attribute>
+
+					<xs:attribute name="entry-point-ref" type="xs:string">
+						<xs:annotation>
+							<xs:documentation>
+								The reference to the bean that defines the entry point for failed authentications. Defaults to
+								a vanilla
+								org.springframework.security.oauth2.provider.error.OAuth2AuthenticationEntryPoint.
+							</xs:documentation>
+						</xs:annotation>
+					</xs:attribute>
+
+					<xs:attribute name="auth-details-source-ref" type="xs:string">
+						<xs:annotation>
+							<xs:documentation>
+								The reference to the bean that defines the AuthenticationDetailsSource.
+							</xs:documentation>
+						</xs:annotation>
+					</xs:attribute>
+				</xs:extension>
+			</xs:complexContent>
+		</xs:complexType>
+	</xs:element>
+
+	<xs:element name="client-details-service">
+		<xs:annotation>
+			<xs:documentation>
+				Default element that contains the definition of the
+				OAuth clients that are
+				allowed to access this
+				service.
+			</xs:documentation>
+		</xs:annotation>
+
+		<xs:complexType>
+			<xs:complexContent>
+				<xs:extension base="beans:identifiedType">
+					<xs:choice minOccurs="0" maxOccurs="unbounded">
+						<xs:element name="client">
+							<xs:annotation>
+								<xs:documentation>
+									Definition of a client that can act on behalf
+									of a user.
+								</xs:documentation>
+							</xs:annotation>
+
+							<xs:complexType>
+								<xs:attribute name="client-id" type="xs:string" use="required">
+									<xs:annotation>
+										<xs:documentation>
+											The client id.
+										</xs:documentation>
+									</xs:annotation>
+								</xs:attribute>
+								<xs:attribute name="secret" type="xs:string">
+									<xs:annotation>
+										<xs:documentation>
+											The client secret. If the secret is
+											undefined or empty (the
+											default) the client does
+											not
+											require a
+											secret.
+										</xs:documentation>
+									</xs:annotation>
+								</xs:attribute>
+								<xs:attribute name="redirect-uri" type="xs:string">
+									<xs:annotation>
+										<xs:documentation>
+											The re-direct URI(s) established during
+											registration (optional, comma separated).
+										</xs:documentation>
+									</xs:annotation>
+								</xs:attribute>
+								<xs:attribute name="resource-ids" type="xs:string">
+									<xs:annotation>
+										<xs:documentation>
+											The resource ids to which this client can be
+											granted access
+											(comma-separated). If missing or
+											empty all
+											resources are
+											accessible (not recommended by the spec).
+										</xs:documentation>
+									</xs:annotation>
+								</xs:attribute>
+								<xs:attribute name="scope" type="xs:string">
+									<xs:annotation>
+										<xs:documentation>
+											The scopes to which the client is limited
+											(comma-separated). If
+											scope is undefined or empty
+											(the
+											default) the client
+											is not limited by scope, but in that case
+											the authorization
+											service must explicitly
+											accept unlimited
+											access by not
+											specifying any scopes itself.
+										</xs:documentation>
+									</xs:annotation>
+								</xs:attribute>
+								<xs:attribute name="authorized-grant-types" type="xs:string">
+									<xs:annotation>
+										<xs:documentation>
+											Grant types that are authorized for the
+											client to use
+											(comma-separated). Currently defined
+											grant types
+											include
+											"authorization_code", "password", "assertion", and
+											"refresh_token". Default value is
+											"authorization_code,refresh_token".
+										</xs:documentation>
+									</xs:annotation>
+								</xs:attribute>
+								<xs:attribute name="authorities" type="xs:string">
+									<xs:annotation>
+										<xs:documentation>
+											Authorities that are granted to the client
+											(comma-separated). Distinct
+											from the authorities
+											granted to
+											the user on behalf
+											of whom the client is acting.
+										</xs:documentation>
+									</xs:annotation>
+								</xs:attribute>
+								<xs:attribute name="access-token-validity" type="xs:string">
+									<xs:annotation>
+										<xs:documentation>
+											The access token validity period in seconds (optional). If unspecified a global default will
+											be applied by the token services.
+										</xs:documentation>
+									</xs:annotation>
+								</xs:attribute>
+								<xs:attribute name="refresh-token-validity" type="xs:string">
+									<xs:annotation>
+										<xs:documentation>
+											The refresh token validity period in seconds (optional). If unspecified a global default
+											will
+											be applied by the token services.
+										</xs:documentation>
+									</xs:annotation>
+								</xs:attribute>
+							</xs:complexType>
+						</xs:element>
+					</xs:choice>
+				</xs:extension>
+			</xs:complexContent>
+		</xs:complexType>
+	</xs:element>
+
+	<xs:element name="expression-handler">
+		<xs:annotation>
+			<xs:documentation>
+				Element for declaring and configuring an expression
+				handler for oauth
+				security expressions. See
+				http://static.springsource.org/spring-security/site/docs/3.0.x/reference/el-access.html
+			</xs:documentation>
+		</xs:annotation>
+		<xs:complexType>
+			<xs:complexContent>
+				<xs:extension base="beans:identifiedType" />
+			</xs:complexContent>
+		</xs:complexType>
+	</xs:element>
+
+	<xs:element name="web-expression-handler">
+		<xs:annotation>
+			<xs:documentation>
+				Element for declaring and configuring an expression
+				handler for oauth
+				security expressions in http
+				intercept urls. See
+				http://static.springsource.org/spring-security/site/docs/3.0.x/reference/el-access.html
+			</xs:documentation>
+		</xs:annotation>
+		<xs:complexType>
+			<xs:complexContent>
+				<xs:extension base="beans:identifiedType" />
+			</xs:complexContent>
+		</xs:complexType>
+	</xs:element>
+
+	<xs:element name="client">
+		<xs:annotation>
+			<xs:documentation>
+				Creates the oauth 2 client filter be be added to the
+				application security policy.
+			</xs:documentation>
+		</xs:annotation>
+		<xs:complexType>
+			<xs:complexContent>
+				<xs:extension base="beans:identifiedType">
+					<xs:attribute name="redirect-strategy-ref" type="xs:string">
+						<xs:annotation>
+							<xs:documentation>
+								The reference to the bean that defines the
+								redirect strategy, used when redirecting the user for
+								access authorization. Default value is an instance of
+								"org.springframework.security.web.DefaultRedirectStrategy".
+							</xs:documentation>
+						</xs:annotation>
+					</xs:attribute>
+				</xs:extension>
+			</xs:complexContent>
+		</xs:complexType>
+	</xs:element>
+
+	<xs:element name="resource">
+		<xs:annotation>
+			<xs:documentation>
+				Definition of a remote resource that is protected via
+				OAuth2 to which this client application wants
+				access.
+			</xs:documentation>
+		</xs:annotation>
+		<xs:complexType>
+			<xs:complexContent>
+				<xs:extension base="beans:identifiedType">
+					<xs:attribute name="type" type="xs:string">
+						<xs:annotation>
+							<xs:documentation>
+								The grant type. Currently defined grant types
+								include
+								"authorization_code", "password", and
+								"assertion".
+								Default value
+								is "authorization_code".
+							</xs:documentation>
+						</xs:annotation>
+					</xs:attribute>
+					<xs:attribute name="client-id" type="xs:string" use="required">
+						<xs:annotation>
+							<xs:documentation>
+								The client id. This is the id by which the
+								resource server will
+								identify this application.
+							</xs:documentation>
+						</xs:annotation>
+					</xs:attribute>
+					<xs:attribute name="access-token-uri" type="xs:string">
+						<xs:annotation>
+							<xs:documentation>
+								The uri to where the access token may be
+								obtained.
+							</xs:documentation>
+						</xs:annotation>
+					</xs:attribute>
+					<xs:attribute name="scope" type="xs:string">
+						<xs:annotation>
+							<xs:documentation>
+								Comma-separted list of string specifying the
+								scope of the access to the
+								resource. By default,
+								no
+								scope will be
+								specified.
+							</xs:documentation>
+						</xs:annotation>
+					</xs:attribute>
+					<xs:attribute name="client-secret" type="xs:string">
+						<xs:annotation>
+							<xs:documentation>
+								The secret asssociated with the resource. By
+								default, no secret
+								will be supplied for access to
+								the resource.
+							</xs:documentation>
+						</xs:annotation>
+					</xs:attribute>
+					<xs:attribute name="client-authentication-scheme" type="xs:string">
+						<xs:annotation>
+							<xs:documentation>
+								The scheme that is used to pass the client
+								secret. Suggested
+								values: "header" and "form".
+								Default:
+								"header".
+								See section 2.1 of the OAuth 2 spec.
+							</xs:documentation>
+						</xs:annotation>
+					</xs:attribute>
+					<xs:attribute name="user-authorization-uri" type="xs:string">
+						<xs:annotation>
+							<xs:documentation>
+								The uri to which the user will be redirected if
+								the user is ever
+								needed to grant an authorization
+								code.
+							</xs:documentation>
+						</xs:annotation>
+					</xs:attribute>
+					<xs:attribute name="authentication-scheme" default="header" type="xs:string">
+						<xs:annotation>
+							<xs:documentation>
+								The method for bearing the token when accessing
+								the resource.
+								Default value is "header". See
+								AuthenticationScheme enum for possible values.
+							</xs:documentation>
+						</xs:annotation>
+					</xs:attribute>
+					<xs:attribute name="token-name" type="xs:string" default="access_token">
+						<xs:annotation>
+							<xs:documentation>
+								The name of the bearer token. The default is
+								"access_token", which
+								is according to the spec,
+								but
+								some providers
+								(e.g. Facebook) don't conform to the spec.
+							</xs:documentation>
+						</xs:annotation>
+					</xs:attribute>
+					<xs:attribute name="pre-established-redirect-uri" type="xs:string">
+						<xs:annotation>
+							<xs:documentation>
+								Some resource servers may require a
+								pre-established URI to which
+								they will redirect users after
+								users
+								authorize an access token.
+							</xs:documentation>
+						</xs:annotation>
+					</xs:attribute>
+					<xs:attribute name="use-current-uri" type="xs:string">
+						<xs:annotation>
+							<xs:documentation>
+								Boolean flag indicating that the current URI should be used as a redirect (if available) rather
+								than the
+								registered redirect URI. Default is true.
+							</xs:documentation>
+						</xs:annotation>
+					</xs:attribute>
+					<xs:attribute name="username" type="xs:string">
+						<xs:annotation>
+							<xs:documentation>
+								The username for authentication, required only when type is "password".
+							</xs:documentation>
+						</xs:annotation>
+					</xs:attribute>
+					<xs:attribute name="password" type="xs:string">
+						<xs:annotation>
+							<xs:documentation>
+								The password for authentication, required only when type is "password".
+							</xs:documentation>
+						</xs:annotation>
+					</xs:attribute>
+				</xs:extension>
+			</xs:complexContent>
+		</xs:complexType>
+	</xs:element>
+
+</xs:schema>

+ 0 - 2
maxkey-protocols/maxkey-protocol-saml-2.0/bin/main/.gitignore

@@ -1,2 +0,0 @@
-/META-INF/
-/org/

+ 0 - 2
maxkey-protocols/maxkey-protocol-tokenbased/bin/main/.gitignore

@@ -1,2 +0,0 @@
-/META-INF/
-/org/

+ 1 - 3
maxkey-web-manage/.settings/org.eclipse.core.resources.prefs

@@ -1,4 +1,2 @@
 eclipse.preferences.version=1
-encoding//src/main/resources/templates/views/apps/appAddCommon.ftl=UTF-8
-encoding//src/main/resources/templates/views/apps/appUpdateCommon.ftl=UTF-8
-encoding/<project>=UTF-8
+encoding/<project>=UTF-8

+ 0 - 81
maxkey-web-manage/src/main/java/org/maxkey/tasks/report/LoginDayReport.java

@@ -1,81 +0,0 @@
-package org.maxkey.tasks.report;
-
-import java.sql.Types;
-import java.util.List;
-import java.util.Map;
-
-
-import org.joda.time.DateTime;
-import org.joda.time.format.DateTimeFormat;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.jdbc.core.JdbcTemplate;
-
-public class LoginDayReport {
-	
-	final static Logger _logger = LoggerFactory.getLogger(LoginDayReport.class);
-	
-	JdbcTemplate jdbcTemplate;
-
-	public static final String DAY_REPORT_COUNT_SELECT_SQL="SELECT COUNT(ID) DAYCOUNT FROM SECDB.LOGIN_HISTORY WHERE  LOGINTIME > ? AND LOGINTIME < ?";
-	
-	public static final String DAY_REPORT_INSERT_SQL="INSERT INTO REPORT_LOGIN_DAY  (REPORTDATE,REPORTYEAR,REPORTMONTH,REPORTDAY,REPORTCOUNT) VALUES (? , ? , ? , ? , ?)";
-	
-	public static final String MONTH_REPORT_COUNT_SELECT_SQL="SELECT REPORTCOUNT  FROM REPORT_LOGIN_MONTH WHERE  REPORTYEAR = ? AND REPORTMONTH = ?";
-	
-	public static final String MONTH_REPORT_INSERT_SQL="INSERT INTO REPORT_LOGIN_MONTH  (REPORTDATE,REPORTYEAR,REPORTMONTH,REPORTCOUNT) VALUES (? , ? , ? , ?)";
-	
-	public static final String MONTH_REPORT_UPDATE_SQL="UPDATE REPORT_LOGIN_MONTH  SET REPORTCOUNT = ? WHERE  REPORTYEAR = ? AND REPORTMONTH = ?";
-	
-	public void dayReportCount() {
-		_logger.info("Day Report Statistical Analysis start . ");
-		DateTime currentdateTime = new DateTime();
-		_logger.info("current date time : " +currentdateTime.toString( DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss")));
-		
-		String beginDateTime=currentdateTime.toString( DateTimeFormat.forPattern("yyyy-MM-dd 00:00:00"));
-		String endDateTime=currentdateTime.toString( DateTimeFormat.forPattern("yyyy-MM-dd 23:59:59"));
-		String currentDate=currentdateTime.toString( DateTimeFormat.forPattern("yyyy-MM-dd"));
-		String currentYear=currentdateTime.toString( DateTimeFormat.forPattern("yyyy"));
-		String currentMonth=currentdateTime.toString( DateTimeFormat.forPattern("MM"));
-		String currentDay=currentdateTime.toString( DateTimeFormat.forPattern("dd"));
-		
-		_logger.info("Day Report Statistical Analysis Date : " +currentDate);
-		//Analysis Current Day Login Count
-		Integer reportCount=jdbcTemplate.queryForObject(DAY_REPORT_COUNT_SELECT_SQL, 
-				new Object[] { beginDateTime,endDateTime},
-				new int[] {Types.TIMESTAMP,Types.TIMESTAMP}, Integer.class);
-		
-		_logger.info("Current day Count " + reportCount);
-		
-		jdbcTemplate.update(DAY_REPORT_INSERT_SQL, currentDate,currentYear,currentMonth,currentDay,reportCount);
-		
-		/**
-		 * if month count not exist,then insert a record 
-		 * else add current day count to month count
-		 */
-		List<Map<String, Object>> listSelectMonthReport=jdbcTemplate.queryForList(MONTH_REPORT_COUNT_SELECT_SQL, 
-				new Object[] { currentYear,currentMonth},
-				new int[] {Types.INTEGER,Types.INTEGER});
-		
-		if(listSelectMonthReport.size()<1){
-			jdbcTemplate.update(MONTH_REPORT_INSERT_SQL, currentDate,currentYear,currentMonth,reportCount);
-			_logger.info("Current Month Count " + reportCount);
-		}else{
-			Integer selectMonthReportCount=Integer.parseInt(listSelectMonthReport.get(0).get("REPORTCOUNT").toString())+reportCount;
-			jdbcTemplate.update(MONTH_REPORT_UPDATE_SQL,selectMonthReportCount, currentYear,currentMonth);
-			_logger.info("Current Month Count " + selectMonthReportCount);
-		}
-		
-		_logger.info("Day Report Statistical Analysis Successful");
-	}
-	 
-	 
-	public JdbcTemplate getJdbcTemplate() {
-		return jdbcTemplate;
-	}
-
-	public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
-		this.jdbcTemplate = jdbcTemplate;
-	}
-	
-}

+ 4 - 6
maxkey-web-manage/src/main/resources/spring/maxkey-mgt-task.xml

@@ -19,7 +19,7 @@
 			http://www.springframework.org/schema/security/spring-security.xsd">
  
  	<!-- Scheduler Task  Start -->		
-	<!-- Day login report -->
+	<!-- Day login report
 	<bean id="loginDayReport" class="org.maxkey.tasks.report.LoginDayReport">
 		<property name="jdbcTemplate" ref="jdbcTemplate" />
 	</bean>
@@ -31,9 +31,7 @@
 	</bean>
 	
 	<bean id="triggerJobDetailLoginDayReport" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
-		 <property name="jobDetail" ref="jobDetailLoginDayReport" />
     	 <property name="cronExpression" value="59 59 23 * * ?" /> 
-    	 <!-- <property name="cronExpression" value="40 * * * * ?" />-->
 	</bean>
 	
 	
@@ -41,12 +39,12 @@
 	    <property name="triggers">
 	        <list>
 	        	<ref bean="triggerJobDetailLoginDayReport" />
-	        	<!-- 
+ 
 	            <ref bean="cronTrigger" />
-	            <ref bean="simpleTrigger" /> -->
+	            <ref bean="simpleTrigger" /> 
 	        </list>
 	    </property>
-	</bean>	
+	</bean>	-->
 	
 	<!-- Scheduler Task End -->
 

+ 2 - 1
maxkey-web-manage/src/main/resources/templates/views/groupapp/addGroupAppsList.ftl

@@ -47,7 +47,7 @@
 	<div id="tool_box">
 	 		<table   class="datatable">
  				<tr>
-		 			<td width="120px"><@locale code="app.name"/>:</td>
+		 			<td width="120px"><@locale code="apps.name"/>:</td>
 		 			<td width="374px" nowrap>
 		 				<form id="basic_search_form">
 				 			<input type="text" name="name" style ="width:150px">
@@ -104,6 +104,7 @@
 				data-total-field="records"
 				data-page-list="[10, 25, 50, 100]"
 				data-search="false"
+				data-sort-name="name"
 				data-locale="zh-CN"
 				data-query-params="dataGridQueryParams"
 				data-query-params-type="pageSize"

+ 2 - 2
sql/secdb-20160918.sql

@@ -1,5 +1,5 @@
-CREATE DATABASE  IF NOT EXISTS `secdb` /*!40100 DEFAULT CHARACTER SET latin1 */;
-USE `secdb`;
+CREATE DATABASE  IF NOT EXISTS `maxkey` /*!40100 DEFAULT CHARACTER SET utf8 */;
+USE `maxkey`;
 -- MySQL dump 10.13  Distrib 5.6.23, for Win64 (x86_64)
 --
 -- Host: 127.0.0.1    Database: secdb