mirror of
https://gitee.com/dromara/MaxKey.git
synced 2025-12-07 17:38:32 +08:00
fix
This commit is contained in:
parent
3bd46aae35
commit
d421ac07ca
@ -149,7 +149,7 @@ public class Navigations extends JpaBaseDomain implements java.io.Serializable
|
|||||||
return "Navigations [name=" + name + ", url=" + url + ", type=" + type
|
return "Navigations [name=" + name + ", url=" + url + ", type=" + type
|
||||||
+ ", target=" + target + ", pId=" + pId + ", pName=" + pName
|
+ ", target=" + target + ", pId=" + pId + ", pName=" + pName
|
||||||
+ ", xPath=" + xPath + ", hasChild=" + hasChild
|
+ ", xPath=" + xPath + ", hasChild=" + hasChild
|
||||||
+ ", sortOrder=" + sortOrder + ", visible=" + visible
|
+", visible=" + visible
|
||||||
+ ", childNavs=" + childNavs + "]";
|
+ ", childNavs=" + childNavs + "]";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -106,7 +106,7 @@ public class Applications extends JpaBaseDomain implements Serializable{
|
|||||||
|
|
||||||
protected Accounts appUser;
|
protected Accounts appUser;
|
||||||
|
|
||||||
protected int sortOrder;
|
protected int sortIndex;
|
||||||
|
|
||||||
protected String description;
|
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
|
* @param icon the icon to set
|
||||||
|
|||||||
@ -64,7 +64,7 @@ public class OAuth20Details extends Applications {
|
|||||||
this.setIcon(application.getIcon());
|
this.setIcon(application.getIcon());
|
||||||
this.clientId=application.getId();
|
this.clientId=application.getId();
|
||||||
|
|
||||||
this.setSortOrder(application.getSortOrder());
|
this.setSortIndex(application.getSortIndex());
|
||||||
this.setVendor(application.getVendor());
|
this.setVendor(application.getVendor());
|
||||||
this.setVendorUrl(application.getVendorUrl());
|
this.setVendorUrl(application.getVendorUrl());
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
package com.connsec.crypto;
|
package com.connsec.crypto;
|
||||||
|
|
||||||
import org.springframework.security.crypto.scrypt.SCryptPasswordEncoder;
|
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
|
||||||
|
|
||||||
public class SCryptPasswordEncoderTest {
|
public class SCryptPasswordEncoderTest {
|
||||||
|
|
||||||
@ -10,11 +10,12 @@ public class SCryptPasswordEncoderTest {
|
|||||||
|
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
// TODO Auto-generated method stub
|
// TODO Auto-generated method stub
|
||||||
SCryptPasswordEncoder pe=new SCryptPasswordEncoder();
|
BCryptPasswordEncoder pe=new BCryptPasswordEncoder();
|
||||||
String c="$e0801$7Holo9EgzBeg5xf/WLZu3/5IQwOyEPDLJPgMXkF9jnekBrbQUMt4CF9O2trkz3zBCnCLpUMR437q/AjQ5TTToA==$oYB8KRSxAsxkKkt5r79W6r6P0wTUcKwGye1ivXRN0Ts="
|
//String c="$e0801$7Holo9EgzBeg5xf/WLZu3/5IQwOyEPDLJPgMXkF9jnekBrbQUMt4CF9O2trkz3zBCnCLpUMR437q/AjQ5TTToA==$oYB8KRSxAsxkKkt5r79W6r6P0wTUcKwGye1ivXRN0Ts="
|
||||||
;
|
//;
|
||||||
System.out.println(pe.encode("shimingxy")+"_password");
|
System.out.println(pe.encode("admin"));
|
||||||
System.out.println(pe.matches("shimingxy"+"_password", c));
|
// System.out.println(pe.encode("shimingxy")+"_password");
|
||||||
|
//System.out.println(pe.matches("shimingxy"+"_password", c));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Binary file not shown.
@ -1,2 +0,0 @@
|
|||||||
/META-INF/
|
|
||||||
/org/
|
|
||||||
@ -1 +0,0 @@
|
|||||||
/com/
|
|
||||||
@ -1,2 +0,0 @@
|
|||||||
/META-INF/
|
|
||||||
/org/
|
|
||||||
@ -1,2 +0,0 @@
|
|||||||
/META-INF/
|
|
||||||
/org/
|
|
||||||
@ -1,2 +0,0 @@
|
|||||||
/META-INF/
|
|
||||||
/org/
|
|
||||||
@ -1,2 +0,0 @@
|
|||||||
/META-INF/
|
|
||||||
/org/
|
|
||||||
@ -1,2 +0,0 @@
|
|||||||
/META-INF/
|
|
||||||
/org/
|
|
||||||
@ -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>
|
||||||
@ -1,2 +0,0 @@
|
|||||||
/META-INF/
|
|
||||||
/org/
|
|
||||||
@ -1,2 +0,0 @@
|
|||||||
/META-INF/
|
|
||||||
/org/
|
|
||||||
@ -1,4 +1,2 @@
|
|||||||
eclipse.preferences.version=1
|
eclipse.preferences.version=1
|
||||||
encoding//src/main/resources/templates/views/apps/appAddCommon.ftl=UTF-8
|
encoding/<project>=UTF-8
|
||||||
encoding//src/main/resources/templates/views/apps/appUpdateCommon.ftl=UTF-8
|
|
||||||
encoding/<project>=UTF-8
|
|
||||||
@ -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;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@ -19,7 +19,7 @@
|
|||||||
http://www.springframework.org/schema/security/spring-security.xsd">
|
http://www.springframework.org/schema/security/spring-security.xsd">
|
||||||
|
|
||||||
<!-- Scheduler Task Start -->
|
<!-- Scheduler Task Start -->
|
||||||
<!-- Day login report -->
|
<!-- Day login report
|
||||||
<bean id="loginDayReport" class="org.maxkey.tasks.report.LoginDayReport">
|
<bean id="loginDayReport" class="org.maxkey.tasks.report.LoginDayReport">
|
||||||
<property name="jdbcTemplate" ref="jdbcTemplate" />
|
<property name="jdbcTemplate" ref="jdbcTemplate" />
|
||||||
</bean>
|
</bean>
|
||||||
@ -31,9 +31,7 @@
|
|||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
<bean id="triggerJobDetailLoginDayReport" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
|
<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="59 59 23 * * ?" />
|
||||||
<!-- <property name="cronExpression" value="40 * * * * ?" />-->
|
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
|
|
||||||
@ -41,12 +39,12 @@
|
|||||||
<property name="triggers">
|
<property name="triggers">
|
||||||
<list>
|
<list>
|
||||||
<ref bean="triggerJobDetailLoginDayReport" />
|
<ref bean="triggerJobDetailLoginDayReport" />
|
||||||
<!--
|
|
||||||
<ref bean="cronTrigger" />
|
<ref bean="cronTrigger" />
|
||||||
<ref bean="simpleTrigger" /> -->
|
<ref bean="simpleTrigger" />
|
||||||
</list>
|
</list>
|
||||||
</property>
|
</property>
|
||||||
</bean>
|
</bean> -->
|
||||||
|
|
||||||
<!-- Scheduler Task End -->
|
<!-- Scheduler Task End -->
|
||||||
|
|
||||||
|
|||||||
@ -47,7 +47,7 @@
|
|||||||
<div id="tool_box">
|
<div id="tool_box">
|
||||||
<table class="datatable">
|
<table class="datatable">
|
||||||
<tr>
|
<tr>
|
||||||
<td width="120px"><@locale code="app.name"/>:</td>
|
<td width="120px"><@locale code="apps.name"/>:</td>
|
||||||
<td width="374px" nowrap>
|
<td width="374px" nowrap>
|
||||||
<form id="basic_search_form">
|
<form id="basic_search_form">
|
||||||
<input type="text" name="name" style ="width:150px">
|
<input type="text" name="name" style ="width:150px">
|
||||||
@ -104,6 +104,7 @@
|
|||||||
data-total-field="records"
|
data-total-field="records"
|
||||||
data-page-list="[10, 25, 50, 100]"
|
data-page-list="[10, 25, 50, 100]"
|
||||||
data-search="false"
|
data-search="false"
|
||||||
|
data-sort-name="name"
|
||||||
data-locale="zh-CN"
|
data-locale="zh-CN"
|
||||||
data-query-params="dataGridQueryParams"
|
data-query-params="dataGridQueryParams"
|
||||||
data-query-params-type="pageSize"
|
data-query-params-type="pageSize"
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
CREATE DATABASE IF NOT EXISTS `secdb` /*!40100 DEFAULT CHARACTER SET latin1 */;
|
CREATE DATABASE IF NOT EXISTS `maxkey` /*!40100 DEFAULT CHARACTER SET utf8 */;
|
||||||
USE `secdb`;
|
USE `maxkey`;
|
||||||
-- MySQL dump 10.13 Distrib 5.6.23, for Win64 (x86_64)
|
-- MySQL dump 10.13 Distrib 5.6.23, for Win64 (x86_64)
|
||||||
--
|
--
|
||||||
-- Host: 127.0.0.1 Database: secdb
|
-- Host: 127.0.0.1 Database: secdb
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user