This commit is contained in:
shimingxy 2019-07-21 23:49:27 +08:00
commit 66f0f9414e
30 changed files with 0 additions and 1795 deletions

View File

@ -1,3 +0,0 @@
Manifest-Version: 1.0
Class-Path:

View File

@ -1,3 +0,0 @@
Manifest-Version: 1.0
Class-Path:

View File

@ -1,3 +0,0 @@
Manifest-Version: 1.0
Class-Path:

View File

@ -1,3 +0,0 @@
Manifest-Version: 1.0
Class-Path:

View File

@ -1,3 +0,0 @@
Manifest-Version: 1.0
Class-Path:

View File

@ -1,3 +0,0 @@
Manifest-Version: 1.0
Class-Path:

View File

@ -1,2 +0,0 @@
http\://www.springframework.org/schema/security/oauth2=org.springframework.security.oauth2.config.xml.OAuth2SecurityNamespaceHandler
http\://www.springframework.org/schema/security/oauth=org.springframework.security.oauth.config.OAuthSecurityNamespaceHandler

View File

@ -1,5 +0,0 @@
http\://www.springframework.org/schema/security/spring-security-oauth2-1.0.xsd=org/springframework/security/oauth2/spring-security-oauth2-1.0.xsd
http\://www.springframework.org/schema/security/spring-security-oauth2-2.0.xsd=org/springframework/security/oauth2/spring-security-oauth2-2.0.xsd
http\://www.springframework.org/schema/security/spring-security-oauth2.xsd=org/springframework/security/oauth2/spring-security-oauth2-2.0.xsd
http\://www.springframework.org/schema/security/spring-security-oauth-1.0.xsd=org/springframework/security/oauth/spring-security-oauth-1.0.xsd
http\://www.springframework.org/schema/security/spring-security-oauth.xsd=org/springframework/security/oauth/spring-security-oauth-1.0.xsd

View File

@ -1,728 +0,0 @@
<?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>

View File

@ -1,3 +0,0 @@
Manifest-Version: 1.0
Class-Path:

View File

@ -1,3 +0,0 @@
Manifest-Version: 1.0
Class-Path:

View File

@ -1,2 +0,0 @@
Manifest-Version: 1.0

View File

@ -1,97 +0,0 @@
############################################################################
# MaxKey Management
############################################################################
# Application Configuration
############################################################################
# DataBase configuration
# JDBC Driver
# for MySql com.mysql.jdbc.Driver
# for oracle oracle.jdbc.driver.OracleDriver
# for DB2 com.ibm.db2.jdbc.app.DB2Driver
# for SqlServer com.microsoft.jdbc.sqlserver.SQLServerDriver
# for SyBase com.sybase.jdbc.SybDriver
# for PostgreSQL org.postgresql.Driver
# for Derby org.apache.derby.jdbc.ClientDriver
config.datasource.driverclass=com.mysql.jdbc.Driver
# JDBC URL
# you need database hostname,port,databasename
# for MySql jdbc:mysql://hostname:port/secdb
# for oracle jdbc:oracle:thin:@hostname:port:secdb
# for DB2 jdbc:db2://hostname:port/secdb
# for SqlServer jdbc:microsoft:sqlserver://hostname:port;DatabaseName=secdb
# for SyBase jdbc:sybase:Tds:hostname:port/secdb
# for Derby jdbc:derby://localhost:1527/secdb
#
config.datasource.url=jdbc:mysql://localhost/maxkey?autoReconnect=true&characterEncoding=UTF-8
config.datasource.username=root
#connsec/bb2002b9f55b05d3e0e6f34ec5321051
#root/4f8520865b3793b07b23e16bc1f117b8
config.datasource.password=bb2002b9f55b05d3e0e6f34ec5321051
#db2,derby,mysql,oracle,postgresql,sqlserver at com.connsec.db.mybatis.dialect.Dialect
config.datasource.database=mysql
# End DataBase configuration
############################################################################
# CharacterEncoding
#CharacterEncoding true/false
config.characterencoding.encoding=true
config.characterencoding.fromcharset=iso8859-1
config.characterencoding.tocharset=UTF-8
# End CharacterEncoding
############################################################################
############################################################################
# Login
config.login.captcha=false
config.login.socialAuth=true
config.login.msad.kerberos=false
# End Login
############################################################################
############################################################################
# domain name configuration
config.domain.name=sso.maxkey.org
config.server.name=http://${config.domain.name}
config.server.prefix=${config.server.name}/manage
############################################################################
# EMAIL configuration
config.email.username=test@connsec.com
config.email.password=3&8Ujbnm5hkjhFD
config.email.smtpHost=smtp.exmail.qq.com
config.email.port=25
config.email.senderMail=test@connsec.com
config.email.ssl=false
############################################################################
# SAML V2.0 configuration
# saml common
config.saml.v20.max.parser.pool.size=2
config.saml.v20.assertion.validity.time.ins.seconds=90
config.saml.v20.replay.cache.life.in.millis=14400000
config.saml.v20.issue.instant.check.clock.skew.in.seconds=90
config.saml.v20.issue.instant.check.validity.time.in.seconds=300
#saml idp keystore
config.saml.v20.idp.keystore.password=connsec
config.saml.v20.idp.keystore.private.key.password=connsec
config.saml.v20.idp.keystore=classpath\:config/connsecKeystore.jks
config.saml.v20.idp.issuing.entity.id=connsec.com
config.saml.v20.idp.issuer=http://connsec.com
config.saml.v20.idp.receiver.endpoint=http://sso.maxkey.org/
#saml sp keystore
config.saml.v20.sp.keystore.password=connsec
config.saml.v20.sp.keystore.private.key.password=connsec
config.saml.v20.sp.keystore=classpath\:config/clientKeystore.jks
config.saml.v20.sp.issuing.entity.id=client.connsec.com
############################################################################
config.oidc.metadata.issuer=http://sso.maxkey.org
config.oidc.metadata.authorizationEndpoint=http://sso.maxkey.org/maxkey/oauth/v20/authorize
config.oidc.metadata.tokenEndpoint=http://sso.maxkey.org/maxkey/oauth/v20/token
config.oidc.metadata.userinfoEndpoint=http://sso.maxkey.org/maxkey/api/connect/userinfo
#############################################################################

View File

@ -1,98 +0,0 @@
############################################################################
# MaxKey
############################################################################
# domain name configuration
config.domain.name=sso.maxkey.org
config.server.name=http://${config.domain.name}
config.server.maxkey.uri=${config.server.name}/maxkey-mgt
############################################################################
# Login configuration
#enable captcha
config.login.captcha=true
#enable two factor,use one time password
config.login.onetimepwd=true
#enable social sign on
config.login.socialsignon=true
#Enable kerberos/SPNEGO
config.login.kerberos=true
#wsFederation
config.login.wsfederation=false
#remeberme
config.login.remeberme=true
#validity
config.login.remeberme.validity=
#default.uri
#to appList page
config.login.default.uri=appList
#to default application web site
#config.login.default.uri=http://www.connsec.com
config.manage.uri=http://login.connsec.com:9500/manage/login
config.ipaddress.whitelist=false
############################################################################
# Kerberos Login configuration
############################################################################
#short name of user domain must be in upper case,eg:CONNSEC
config.support.kerberos.default.userdomain=CONNSEC
#short name of user domain must be in upper case,eg:CONNSEC.COM
config.support.kerberos.default.fulluserdomain=CONNSEC.COM
#last 8Bit crypto for Kerberos web Authentication
config.support.kerberos.default.crypto=846KZSzYq56M6d5o
#Kerberos Authentication server RUL
config.support.kerberos.default.redirecturi=http://sso.maxkey.org/kerberos/authn/
############################################################################
# CAS Login configuration
############################################################################
config.support.cas.login.url=http://sso.maxkey.org/cas/login
#
config.support.cas.login.service=http://sso.maxkey.org/maxkey/cas
#
config.support.cas.login.validation.url=http://sso.maxkey.org/cas
############################################################################
# HTTPHEADER Login configuration
############################################################################
config.support.httpheader.enable=false
config.support.httpheader.headername=header-user
# iv-user is for IBM Security Access Manager
#config.httpheader.headername=iv-user
############################################################################
# BASIC Login support configuration
############################################################################
config.support.basic.enable=false
#############################################################################
# WsFederation Login support configuration
#identifier: the identifer for the ADFS server
#url: the login url for ADFS
#principal: the name of the attribute/assertion returned by ADFS that contains the principal's username.
#relyingParty: the identifier of the CAS Server as it has been configured in ADFS.
#tolerance: (optional) the amount of drift to allow when validating the timestamp on the token. Default: 10000 (ms)
#attributeMutator: (optional) a class (defined by you) that can modify the attributes/assertions returned by the ADFS server
#signingCertificate: ADFS's signing certificate used to validate the token/assertions issued by ADFS.
############################################################################
config.support.wsfederation.identifier=http://adfs.connsec.com/adfs/services/trust
config.support.wsfederation.url=https://adfs.connsec.com/adfs/ls/
config.support.wsfederation.principal=upn
config.support.wsfederation.relyingParty=urn:federation:connsec
config.support.wsfederation.signingCertificate=adfs-signing.crt
config.support.wsfederation.tolerance=10000
config.support.wsfederation.upn.suffix=connsec.com
config.support.wsfederation.logoutUrl=https://adfs.connsec.com/adfs/ls/?wa=wsignout1.0
#############################################################################
#############################################################################
config.oidc.metadata.issuer=${config.server.maxkey.uri}
config.oidc.metadata.authorizationEndpoint=${config.server.maxkey.uri}/oauth/v20/authorize
config.oidc.metadata.tokenEndpoint=${config.server.maxkey.uri}/oauth/v20/token
config.oidc.metadata.userinfoEndpoint=${config.server.maxkey.uri}/api/connect/userinfo
#############################################################################

View File

@ -1,13 +0,0 @@
{
"keys": [
{
"kty": "RSA",
"d": "K2VCm_6enq5uoFLZXUlWkgbCXj5m9X5uUX3_Ol3qcY9X1cP04TN98R8lpw-ASeFDRFRhe0FT-lYCYu_fqZcrNXVhyN3rgi27af5x4HdFMnHLTLMPvE6aEyTGmZjTF1AbiX5VOJAl6POI9FiyTbV1Uqt943ydJv8SH4NfcYhKBmpp8Fi1f58mon-bYwsIy8mzZjssc8KZy-GzpscKrc5ewb7106JY3uRQNprAHrpcGAPZ8uXUvVhrxp_FNn5Nf5KVxl2tm50L83_5nw0OZrbJ8Ceg7sZAw_Z41lbYbS9VDaST6TuKRb7W4XCKimZUn57LoQT2-Gkv6msJHCmqTgK02Q",
"e": "AQAB",
"use": "sig",
"kid": "maxkey_rsa",
"alg": "RS256",
"n": "vyfZwQuBLNvJDhmziUCFuAfIv-bC6ivodcR6PfanTt8XLd6G63Yx10YChAdsDACjoLz1tEU56WPp_ee_vcTSsEZT3ouWJYghuGI2j4XclXlEj0S7DzdpcBBpI4n5dr8K3iKY-3JUMZR1AMBHI50UaMST9ZTZJAjUPIYxkhRdca5lWBo4wGUh1yj_80-Bq6al0ia9S5NTzNLaJ18jSxFqZ79BAkBm-KjkP248YUk6WBGtYEAV5Fws4dpse4hrqJ3RRHiMZV1o1iTmPHz_l55ZSDP3vpYf6iKqKzoK2RmdjfH5mGpbc4-PclTs4GKfwZ7cWfrny6B7sMnQfzujCH996Q"
}
]
}

View File

@ -1,39 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration status="INFO">
<appenders>
<Console name="consolePrint" target="SYSTEM_OUT">
<PatternLayout pattern="%d{YYYY-MM-dd HH:mm:ss,SSS} [%t] %-5level %logger{36} - %msg%n" />
</Console>
<!--
<File name="File" fileName="logs/PipeLineRunner.log">
<PatternLayout pattern="%d{YYYY-MM-dd HH:mm:ss,SSS} [%t] %-5level %logger{36} - %msg%n" />
</File>
-->
<!-- 输出到文件按天或者超过80MB分割 -->
<RollingFile name="RollingFile" fileName="${catalina.home}/logs/maxkey.log" filePattern="${catalina.home}/logs/$${date:yyyy-MM}/maxkey-%d{yyyy-MM-dd}-%i.log.gz">
<!-- 需要记录的级别 -->
<!-- <ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY" /> -->
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss,SSS}:%4p %t (%F:%L) - %m%n" />
<Policies>
<OnStartupTriggeringPolicy />
<TimeBasedTriggeringPolicy />
<SizeBasedTriggeringPolicy size="512 MB" />
<!-- <SizeBasedTriggeringPolicy size="80 MB" /> -->
</Policies>
</RollingFile>
</appenders>
<loggers>
<Logger name="org.springframework" level="INFO"></Logger>
<Logger name="org.apache.logging" level="INFO"></Logger>
<Logger name="org.maxkey" level="DEBUG"></Logger>
<root level="INFO">
<appender-ref ref="consolePrint" />
<appender-ref ref="RollingFile" />
</root>
</loggers>
</configuration>

View File

@ -1,238 +0,0 @@
global.application=MaxKey\u5E94\u7528\u5B89\u5168\u7CFB\u7EDF
global.change.language=\u8BED\u97F3\u9009\u62E9
global.change.language.en=\u82F1\u6587
global.change.language.zh=\u4E2D\u6587
global.text.welcome=\u6B22\u8FCE\u60A8
global.text.manage=\u7BA1\u7406
global.text.copyright=\u7248\u6743\u6240\u6709
global.text.copyright.content=Copyright 2018-2019 shimingxy@163.com Licensed under the Apache License, Version 2.0
global.text.logout=\u9000\u51FA
global.logout.tip=\u6CE8\u9500\u6210\u529F
global.logout.text.suffix=\u91CD\u65B0\u767B\u5F55
global.logout.text.prefix=\u60A8\u5DF2\u7ECF\u6210\u529F\u9000\u51FA\u767B\u5F55\uFF0C\u8BF7\u5173\u95ED\u6D4F\u89C8\u5668\u6216\u8005
login.session.timeout.tip=\u767B\u5F55\u4F1A\u8BDD\u8D85\u65F6
login.session.timeout.prefix=\u60A8\u7684\u767B\u5F55\u4F1A\u8BDD\u5DF2\u7ECF\u8D85\u65F6\uFF0C\u8BF7
login.session.timeout.suffix=\u91CD\u65B0\u767B\u5F55
login.text.login.header=\u8D26\u53F7\u767B\u5F55
common.window.title=\u7A97\u53E3
common.alert.title=\u63D0\u793A\u4FE1\u606F
common.alert.closeText=\u5173\u95ED
common.conform.title=\u786E\u8BA4\u63D0\u793A
common.conform.yes=\u786E\u5B9A
common.conform.no=\u5173\u95ED
common.select.hintText=\u8BF7\u9009\u62E9\u60A8\u8981\u64CD\u4F5C\u7684\u6570\u636E
common.delete.hintText=\u60A8\u786E\u5B9A\u8981\u5220\u9664\u5417?
common.grid.loadtext=\u6B63\u5728\u52A0\u8F7D...
common.grid.loadnodata=\u6CA1\u6709\u67E5\u8BE2\u5230\u7B26\u5408\u6570\u636E
common.submit.hintText=\u60A8\u786E\u5B9A\u8981\u8FDB\u884C\u6B64\u9879\u64CD\u4F5C\u5417?
common.submit.errorText=\u6267\u884C\u64CD\u4F5C\u5931\u8D25
common.text.startdate=\u5F00\u59CB\u65F6\u95F4
common.text.enddate=\u7ED3\u675F\u65F6\u95F4
common.text.createdby=\u521B\u5EFA\u4EBA
common.text.createddate=\u521B\u5EFA\u65F6\u95F4
common.text.modifiedby=\u4FEE\u6539\u4EBA
common.text.modifieddate=\u4FEE\u6539\u65F6\u95F4
common.text.status=\u72B6\u6001
common.text.status.0=\u5F00\u59CB
common.text.status.1=\u6B63\u5E38
common.text.status.2=\u505C\u6B62
common.text.status.3=\u542F\u7528
common.text.status.4=\u7981\u7528
common.text.status.5=\u9501\u5B9A
common.text.status.6=\u89E3\u9501
common.text.status.7=\u65E0\u6548
common.text.status.8=\u8FC7\u671F
common.text.status.9=\u5220\u9664
common.text.status.10=\u6709\u6548
common.text.status.11=\u6D3B\u52A8
common.text.status.12=\u4E0D\u6D3B\u52A8
common.text.status.13=\u6279\u51C6
login.text.login.twofactor.obtain.valid=\u91CD\u65B0\u83B7\u53D6
login.text.login.twofactor.obtain=\u83B7\u53D6\u52A8\u6001\u9A8C\u8BC1\u7801
login.text.login.twofactor.obtain.valid.unit=\u79D2
login.text.login.twofactor.validTime=\u5269\u4F59\u65F6\u95F4
login.text.login.twofactor.validTime.unit=\u79D2
login.text.login.twofactor=\u5B89\u5168\u8BA4\u8BC1
login.text.login.normal=\u57FA\u672C\u8BA4\u8BC1
login.text.username=\u7528\u6237\u540D
login.text.password=\u5BC6&nbsp;&nbsp;&nbsp;&nbsp;\u7801
login.text.captcha=\u9A8C\u8BC1\u7801
login.text.remeberme=\u8BB0\u4F4F\u767B\u5F55
login.text.forgotpassword=\u5FD8\u8BB0\u5BC6\u7801
login.button.login=\u767B\u5F55
login.text.currenttime=\u65F6&nbsp;&nbsp;&nbsp;&nbsp;\u95F4
login.text.otherlogins=\u5176\u4ED6\u767B\u5F55\u65B9\u5F0F
login.text.register=\u7528\u6237\u6CE8\u518C
login.password.expired=\u5BC6\u7801\u8FC7\u671F
login.password.expired.tip=\u5BC6\u7801\u8FC7\u671F\uFF0C\u8BF7\u4FEE\u6539\u5BC6\u7801
login.password.oldPassword=\u539F\u5BC6\u7801
login.password.newPassword=\u65B0\u5BC6\u7801
login.password.confirmPassword=\u786E\u8BA4\u65B0\u5BC6\u7801
login.password.initial.change.tip=\u9996\u6B21\u767B\u5F55\uFF0C\u8BF7\u4FEE\u6539\u521D\u59CB\u5316\u5BC6\u7801
login.password.changepassword=\u5BC6\u7801\u4FEE\u6539
login.password.applogin.changepassword=\u5E94\u7528\u767B\u5F55\u5BC6\u7801\u8BBE\u7F6E
login.social.link=\u7ED1\u5B9A
login.social.unlink=\u89E3\u9664
login.social.icon=\u56FE\u6807
login.social.provider=\u4F9B\u5E94\u5546
userinfo.displayName=\u7528\u6237\u540D
userinfo.username=\u767B\u5F55\u8D26\u53F7
userinfo.email=\u90AE\u7BB1\u5730\u5740
userinfo.mobile=\u624B\u673A\u53F7\u7801
userinfo.userType=\u7528\u6237\u7C7B\u578B
userinfo.picture=\u5934\u50CF
userinfo.familyName=\u59D3
userinfo.givenName=\u540D
userinfo.middleName=\u4E2D\u95F4\u540D
userinfo.nickName=\u6635\u79F0
userinfo.gender=\u6027\u522B
userinfo.gender.female=\u5973
userinfo.gender.male=\u7537
userinfo.married=\u5A5A\u59FB\u72B6\u6001
userinfo.married.unknown=\u672A\u77E5
userinfo.married.single=\u5355\u8EAB
userinfo.married.married=\u5DF2\u5A5A
userinfo.married.divorce=\u79BB\u5F02
userinfo.married.widowed=\u4E27\u5076
userinfo.website=\u4e2a\u4eba\u4e3b\u9875
userinfo.idtype=\u8bc1\u4ef6\u7c7b\u578b
userinfo.idtype.unknown=\u672A\u77E5
userinfo.idtype.idcard=\u8EAB\u4EFD\u8BC1
userinfo.idtype.passport=\u62A4\u7167
userinfo.idtype.studentcard=\u5B66\u751F\u8BC1
userinfo.idtype.militarycard=\u519B\u4EBA\u8BC1
userinfo.idCardNo=\u8BC1\u4EF6\u53F7\u7801
userinfo.startWorkDate=\u5DE5\u4F5C\u5F00\u59CB\u65F6\u95F4
userinfo.preferredLanguage=\u8BED\u97F3\u504F\u597D
userinfo.timeZone=\u65F6\u533A
userinfo.locale=\u8BED\u8A00\u9009\u62E9
userinfo.employeeNumber=\u5458\u5DE5\u7F16\u53F7
userinfo.windowsAccount=AD\u57DF\u8D26\u53F7
userinfo.organization=\u6240\u5C5E\u673A\u6784
userinfo.division=\u5206\u652F\u673A\u6784
userinfo.department=\u90E8\u95E8
userinfo.costCenter=\u6210\u672C\u4E2D\u5FC3
userinfo.jobTitle=\u804C\u4F4D
userinfo.jobLevel=\u7EA7\u522B
userinfo.manager=\u4E0A\u7EA7\u7ECF\u7406
userinfo.assistant=\u52A9\u7406
userinfo.entryDate=\u5165\u804C\u65F6\u95F4
userinfo.quitDate=\u79BB\u804C\u65F6\u95F4
userinfo.workCountry=\u56FD\u5BB6
userinfo.workRegion=\u7701
userinfo.workLocality=\u57CE\u5E02
userinfo.workStreetAddress=\u5730\u5740
userinfo.workPostalCode=\u90AE\u7F16
userinfo.workFax=\u4F20\u771F
userinfo.workPhoneNumber=\u5DE5\u4F5C\u7535\u8BDD
userinfo.workEmail=\u5DE5\u4F5C\u90AE\u4EF6
userinfo.homeCountry=\u56FD\u5BB6
userinfo.homeRegion=\u7701
userinfo.homeLocality=\u57CE\u5E02
userinfo.homeStreetAddress=\u5BB6\u5EAD\u5730\u5740
userinfo.homePostalCode=\u5BB6\u5EAD\u90AE\u7F16
userinfo.homeFax=\u5BB6\u5EAD\u4F20\u771F
userinfo.homePhoneNumber=\u5BB6\u5EAD\u7535\u8BDD
userinfo.homeEmail=\u5BB6\u5EAD\u90AE\u7BB1
userinfo.authnType=\u767B\u5F55\u65B9\u5F0F
userinfo.authnType.authnType.1=\u666E\u901A\u767B\u5F55
userinfo.authnType.authnType.2=\u624B\u673A\u4EE4\u724C
userinfo.authnType.authnType.3=\u77ED\u4FE1\u9A8C\u8BC1
userinfo.authnType.authnType.4=\u90AE\u4EF6\u9A8C\u8BC1
userinfo.authnType.authnType.5=\u65F6\u95F4\u4EE4\u724C
userinfo.authnType.authnType.6=\u8BA1\u6570\u5668\u4EE4\u724C
userinfo.authnType.authnType.7=HOTP\u4EE4\u724C
userinfo.authnType.authnType.8=RSA\u4EE4\u724C
userinfo.authnType.authnType.9=\u6570\u5B57\u8BC1\u4E66
userinfo.authnType.authnType.10=USB Key
login.totp.sharedSecret=\u5171\u4EAB\u5BC6\u7801
login.totp.period=\u5468\u671F
login.totp.digits=\u6570\u5B57
login.totp.crypto=\u52A0\u5BC6\u65B9\u5F0F
login.totp.generate=\u91CD\u65B0\u751F\u6210
login.totp.title=TimeBased One Time Password
login.hotp.sharedSecret=\u5171\u4EAB\u5BC6\u7801
login.hotp.period=\u5468\u671F
login.hotp.digits=\u6570\u5B57
login.hotp.crypto=\u52A0\u5BC6\u65B9\u5F0F
login.hotp.generate=\u91CD\u65B0\u751F\u6210
login.hotp.title=HOTP One Time Password
login.counter.sharedSecret=\u5171\u4EAB\u5BC6\u7801
login.counter.period=\u5468\u671F
login.counter.digits=\u6570\u5B57
login.counter.crypto=\u52A0\u5BC6\u65B9\u5F0F
login.counter.generate=\u91CD\u65B0\u751F\u6210
login.counter.title=Counter Based One Time Password
apps.icon=\u56FE\u6807
apps.name=\u5E94\u7528\u540D\u79F0
apps.protocol=\u8BBF\u95EE\u534F\u8BAE
apps.category=\u7C7B\u578B
button.text.action=\u8BBF\u95EE
button.text.visit=\u8BBF\u95EE
button.text.save=\u4FDD\u5B58
button.text.select=\u8BF7\u9009\u62E9
button.text.search=\u67E5\u8BE2
button.text.expandsearch=\u5C55\u5F00
button.text.collapsesearch=\u6536\u7F29
button.text.changepassword=\u4FEE\u6539\u5BC6\u7801
button.text.add=\u65B0\u589E
button.text.edit=\u4FEE\u6539
button.text.delete=\u5220\u9664
log.loginhistory.id=\u7F16\u53F7
log.loginhistory.sessionId=\u4F1A\u8BDD
log.loginhistory.username=\u767B\u5F55\u540D
log.loginhistory.displayName=\u7528\u6237\u540D\u79F0
log.loginhistory.provider=\u63D0\u4F9B\u5546
log.loginhistory.message=\u72B6\u6001
log.loginhistory.loginType=\u767B\u5F55\u65B9\u5F0F
log.loginhistory.sourceIp=\u8BBF\u95EE\u5730\u5740
log.loginhistory.browser=\u6D4F\u89C8\u5668
log.loginhistory.loginTime=\u767B\u5F55\u65F6\u95F4
log.loginhistory.logoutTime=\u9000\u51FA\u65F6\u95F4
log.loginhistory.platform=\u5E73\u53F0
log.loginhistory.application=\u5E94\u7528
log.loginhistory.loginUrl=\u767B\u5F55\u5730\u5740
log.loginhistory.code=\u4EE3\u7801
log.loginhistory.rpUserInfo=\u7B2C\u4E09\u65B9
log.loginappshistory.id=\u7F16\u53F7
log.loginappshistory.sessionId=\u4F1A\u8BDD
log.loginappshistory.uid=\u7528\u6237\u7F16\u53F7
log.loginappshistory.username=\u767B\u5F55\u540D
log.loginappshistory.displayName=\u7528\u6237\u540D
log.loginappshistory.appId=\u5E94\u7528\u7F16\u53F7
log.loginappshistory.appName=\u5E94\u7528\u540D\u79F0
log.loginappshistory.loginTime=\u767B\u5F55\u65F6\u95F4
log.operate.servicename=\u670D\u52A1
log.operate.message=\u6D88\u606F
log.operate.content=\u5185\u5BB9
log.operate.messageType=\u6D88\u606F\u7C7B\u578B
log.operate.operateType=\u64CD\u4F5C\u7C7B\u578B
log.operate.username=\u64CD\u4F5C\u4EBA
passwordpolicy.minlength=\u6700\u5C0F\u957F\u5EA6
passwordpolicy.maxlength=\u6700\u5927\u957F\u5EA6
passwordpolicy.lowercase=\u5C0F\u5199
passwordpolicy.uppercase=\u5927\u5199
passwordpolicy.digits=\u6570\u5B57
passwordpolicy.specialchar=\u7279\u6B8A\u5B57\u7B26
passwordpolicy.attempts=\u767B\u5F55\u9519\u8BEF\u6B21\u6570
passwordpolicy.duration=\u9501\u5B9A\u65F6\u95F4
passwordpolicy.expiration=\u8FC7\u671F\u5929\u6570
passwordpolicy.username=\u5305\u542B\u7528\u6237\u540D
passwordpolicy.simplepasswords=\u7B80\u5355\u5BC6\u7801\u5217\u8868

View File

@ -1,2 +0,0 @@
Manifest-Version: 1.0

View File

@ -1,71 +0,0 @@
############################################################################
# MaxKey
############################################################################
# DataBase configuration
############################################################################
#db2,derby,mysql,oracle,postgresql,sqlserver at com.connsec.db.mybatis.dialect.Dialect
config.datasource.database=mysql
# JDBC Driver
# for MySql com.mysql.jdbc.Driver
# for oracle oracle.jdbc.driver.OracleDriver
# for DB2 com.ibm.db2.jdbc.app.DB2Driver
# for SqlServer com.microsoft.jdbc.sqlserver.SQLServerDriver
# for SyBase com.sybase.jdbc.SybDriver
# for PostgreSQL org.postgresql.Driver
# for Derby org.apache.derby.jdbc.ClientDriver
config.datasource.driverclass=com.mysql.jdbc.Driver
# JDBC URL
# you need database hostname,port,databasename
# for MySql jdbc:mysql://hostname:port/secdb
# for oracle jdbc:oracle:thin:@hostname:port:secdb
# for DB2 jdbc:db2://hostname:port/secdb
# for SqlServer jdbc:microsoft:sqlserver://hostname:port;DatabaseName=secdb
# for SyBase jdbc:sybase:Tds:hostname:port/secdb
# for Derby jdbc:derby://localhost:1527/secdb
#
config.datasource.url=jdbc:mysql://localhost/maxkey?autoReconnect=true&characterEncoding=UTF-8
config.datasource.username=root
#connsec/bb2002b9f55b05d3e0e6f34ec5321051
#root/4f8520865b3793b07b23e16bc1f117b8
config.datasource.password=bb2002b9f55b05d3e0e6f34ec5321051
############################################################################
# EMAIL configuration
############################################################################
config.email.username=test@connsec.com
config.email.password=3&8Ujbnm5hkjhFD
config.email.smtpHost=smtp.exmail.qq.com
config.email.port=25
config.email.senderMail=test@connsec.com
config.email.ssl=false
############################################################################
# CharacterEncoding configuration
############################################################################
# CharacterEncoding true/false
config.characterencoding.encoding=true
config.characterencoding.fromcharset=iso8859-1
config.characterencoding.tocharset=UTF-8
config.app.issuer=CN=ConSec,CN=COM,CN=SH
############################################################################
#
config.redis.pool.maxtotal=1000
#
config.redis.pool.maxidle=200
#
config.redis.pool.maxwaitmillis=1000
#
config.redis.pool.testonborrow=true
#IP
config.redis.hostname=127.0.0.1
#port
config.redis.port=6379
#password
config.redis.password=password
config.redis.timeout=10000

View File

@ -1,98 +0,0 @@
############################################################################
# MaxKey
############################################################################
# domain name configuration
config.domain.name=sso.maxkey.org
config.server.name=http://${config.domain.name}
config.server.maxkey.uri=${config.server.name}/maxkey
############################################################################
# Login configuration
#enable captcha
config.login.captcha=true
#enable two factor,use one time password
config.login.onetimepwd=true
#enable social sign on
config.login.socialsignon=true
#Enable kerberos/SPNEGO
config.login.kerberos=true
#wsFederation
config.login.wsfederation=false
#remeberme
config.login.remeberme=true
#validity
config.login.remeberme.validity=
#default.uri
#to appList page
config.login.default.uri=appList
#to default application web site
#config.login.default.uri=http://www.connsec.com
config.manage.uri=http://login.connsec.com:9500/manage/login
config.ipaddress.whitelist=false
############################################################################
# Kerberos Login configuration
############################################################################
#short name of user domain must be in upper case,eg:CONNSEC
config.support.kerberos.default.userdomain=CONNSEC
#short name of user domain must be in upper case,eg:CONNSEC.COM
config.support.kerberos.default.fulluserdomain=CONNSEC.COM
#last 8Bit crypto for Kerberos web Authentication
config.support.kerberos.default.crypto=846KZSzYq56M6d5o
#Kerberos Authentication server RUL
config.support.kerberos.default.redirecturi=http://sso.maxkey.org/kerberos/authn/
############################################################################
# CAS Login configuration
############################################################################
config.support.cas.login.url=http://sso.maxkey.org/cas/login
#
config.support.cas.login.service=http://sso.maxkey.org/maxkey/cas
#
config.support.cas.login.validation.url=http://sso.maxkey.org/cas
############################################################################
# HTTPHEADER Login configuration
############################################################################
config.support.httpheader.enable=false
config.support.httpheader.headername=header-user
# iv-user is for IBM Security Access Manager
#config.httpheader.headername=iv-user
############################################################################
# BASIC Login support configuration
############################################################################
config.support.basic.enable=false
#############################################################################
# WsFederation Login support configuration
#identifier: the identifer for the ADFS server
#url: the login url for ADFS
#principal: the name of the attribute/assertion returned by ADFS that contains the principal's username.
#relyingParty: the identifier of the CAS Server as it has been configured in ADFS.
#tolerance: (optional) the amount of drift to allow when validating the timestamp on the token. Default: 10000 (ms)
#attributeMutator: (optional) a class (defined by you) that can modify the attributes/assertions returned by the ADFS server
#signingCertificate: ADFS's signing certificate used to validate the token/assertions issued by ADFS.
############################################################################
config.support.wsfederation.identifier=http://adfs.connsec.com/adfs/services/trust
config.support.wsfederation.url=https://adfs.connsec.com/adfs/ls/
config.support.wsfederation.principal=upn
config.support.wsfederation.relyingParty=urn:federation:connsec
config.support.wsfederation.signingCertificate=adfs-signing.crt
config.support.wsfederation.tolerance=10000
config.support.wsfederation.upn.suffix=connsec.com
config.support.wsfederation.logoutUrl=https://adfs.connsec.com/adfs/ls/?wa=wsignout1.0
#############################################################################
#############################################################################
config.oidc.metadata.issuer=${config.server.maxkey.uri}
config.oidc.metadata.authorizationEndpoint=${config.server.maxkey.uri}/oauth/v20/authorize
config.oidc.metadata.tokenEndpoint=${config.server.maxkey.uri}/oauth/v20/token
config.oidc.metadata.userinfoEndpoint=${config.server.maxkey.uri}/api/connect/userinfo
#############################################################################

View File

@ -1,38 +0,0 @@
############################################################################
# MaxKey
############################################################################
# SAML V2.0 configuration
#saml common
config.saml.v20.max.parser.pool.size=2
config.saml.v20.assertion.validity.time.ins.seconds=90
config.saml.v20.replay.cache.life.in.millis=14400000
config.saml.v20.issue.instant.check.clock.skew.in.seconds=90
config.saml.v20.issue.instant.check.validity.time.in.seconds=300
#saml idp keystore
config.saml.v20.idp.keystore.password=connsec
config.saml.v20.idp.keystore.private.key.password=connsec
config.saml.v20.idp.keystore=classpath\:config/connsecKeystore.jks
#keystore id for sec
config.saml.v20.idp.issuing.entity.id=connsec.com
config.saml.v20.idp.issuer=https://login.connsec.com/maxkey/saml
config.saml.v20.idp.receiver.endpoint=https\://login.connsec.com/
#saml sp keystore
config.saml.v20.sp.keystore.password=connsec
config.saml.v20.sp.keystore.private.key.password=connsec
config.saml.v20.sp.keystore=classpath\:config/clientKeystore.jks
config.saml.v20.sp.issuing.entity.id=client.connsec.com
#Saml v20 Metadata
config.saml.v20.metadata.orgName=maxkey
config.saml.v20.metadata.orgDisplayName=maxkey
config.saml.v20.metadata.orgURL=http://www.maxkey.org
config.saml.v20.metadata.contactType=technical
config.saml.v20.metadata.company=maxkey
config.saml.v20.metadata.givenName=maxkey
config.saml.v20.metadata.surName=maxkey
config.saml.v20.metadata.emailAddress=admin@maxkey.com
config.saml.v20.metadata.telephoneNumber=4008981111

View File

@ -1,83 +0,0 @@
############################################################################
# MaxKey
############################################################################
# Social Sign On Configuration #
#you config client.id & client.secret only
############################################################################
############################################################################
#sina weibo
config.socialsignon.sinaweibo.provider=sinaweibo
config.socialsignon.sinaweibo.provider.name=\u65B0\u6D6A\u5FAE\u535A
config.socialsignon.sinaweibo.icon=images/social/sinaweibo.png
config.socialsignon.sinaweibo.client.id=3379757634
config.socialsignon.sinaweibo.client.secret=1adfdf9800299037bcab9d1c238664ba
config.socialsignon.sinaweibo.authorize.url=https://api.weibo.com/oauth2/authorize?client_id=%s&redirect_uri=%s&response_type=code
config.socialsignon.sinaweibo.accesstoken.url=https://api.weibo.com/oauth2/access_token
config.socialsignon.sinaweibo.accesstoken.method=POST
config.socialsignon.sinaweibo.scope=all
config.socialsignon.sinaweibo.verifier.code=code
config.socialsignon.sinaweibo.account.url=https://api.weibo.com/2/users/show.json
config.socialsignon.sinaweibo.account.id=id
config.socialsignon.sinaweibo.sortorder=1
#Google
config.socialsignon.google.provider=google
config.socialsignon.google.provider.name=Google
config.socialsignon.google.icon=images/social/google.png
config.socialsignon.google.client.id=519914515488.apps.googleusercontent.com
config.socialsignon.google.client.secret=3aTW3Iw7e11QqMnHxciCaXTt
config.socialsignon.google.authorize.url=https://accounts.google.com/o/oauth2/auth?client_id=%s&redirect_uri=%s&response_type=code
config.socialsignon.google.accesstoken.url=https://accounts.google.com/o/oauth2/token?access_type=offline
config.socialsignon.google.accesstoken.method=POST
config.socialsignon.google.scope=openid email profile
#config.socialsignon.google.scope=https://www.googleapis.com/auth/userinfo.email
config.socialsignon.google.verifier.code=code
config.socialsignon.google.account.url=https://www.googleapis.com/plus/v1/people/me
config.socialsignon.google.account.id=id
config.socialsignon.google.sortorder=2
#QQ
config.socialsignon.qq.provider=qq
config.socialsignon.qq.provider.name=QQ
config.socialsignon.qq.icon=images/social/qq.png
config.socialsignon.qq.client.id=101224990
config.socialsignon.qq.client.secret=09d7481b68d888f01831e3ef7c1c3015
config.socialsignon.qq.authorize.url=https://graph.qq.com/oauth2.0/authorize?client_id=%s&redirect_uri=%s&response_type=code
config.socialsignon.qq.accesstoken.url=https://graph.qq.com/oauth2.0/token
config.socialsignon.qq.accesstoken.method=POST
config.socialsignon.qq.scope=read
config.socialsignon.qq.verifier.code=code
config.socialsignon.qq.account.url=https://graph.qq.com/oauth2.0/me
config.socialsignon.qq.account.id=openid
config.socialsignon.qq.sortorder=4
#Windows Live
config.socialsignon.live.provider=live
config.socialsignon.live.provider.name=Windows Live
config.socialsignon.live.icon=images/social/live.png
config.socialsignon.live.client.id=00000000401129A4
config.socialsignon.live.client.secret=Kx-OAmHaoqG5vcitm3-TASOSZD1ebu64
config.socialsignon.live.authorize.url=https://login.live.com/oauth20_authorize.srf?client_id=%s&redirect_uri=%s&response_type=code
config.socialsignon.live.accesstoken.url=https://login.live.com/oauth20_token.srf
config.socialsignon.live.accesstoken.method=GET
config.socialsignon.live.scope=wl.basic
config.socialsignon.live.verifier.code=code
config.socialsignon.live.account.url=https://apis.live.net/v5.0/me
config.socialsignon.live.account.id=id
config.socialsignon.live.sortorder=5
#facebook
config.socialsignon.facebook.provider=facebook
config.socialsignon.facebook.provider.name=facebook
config.socialsignon.facebook.icon=images/social/facebook.png
config.socialsignon.facebook.client.id=appKey
config.socialsignon.facebook.client.secret=appSecret
config.socialsignon.facebook.authorize.url=https://www.facebook.com/dialog/oauth?client_id=%s&redirect_uri=%s&response_type=code
config.socialsignon.facebook.accesstoken.url=https://graph.facebook.com/oauth/access_token
config.socialsignon.facebook.accesstoken.method=GET
config.socialsignon.facebook.scope=read
config.socialsignon.facebook.verifier.code=code
config.socialsignon.facebook.account.url=https://graph.facebook.com/me
config.socialsignon.facebook.account.id=id
config.socialsignon.facebook.sortorder=7

View File

@ -1,13 +0,0 @@
{
"keys": [
{
"kty": "RSA",
"d": "K2VCm_6enq5uoFLZXUlWkgbCXj5m9X5uUX3_Ol3qcY9X1cP04TN98R8lpw-ASeFDRFRhe0FT-lYCYu_fqZcrNXVhyN3rgi27af5x4HdFMnHLTLMPvE6aEyTGmZjTF1AbiX5VOJAl6POI9FiyTbV1Uqt943ydJv8SH4NfcYhKBmpp8Fi1f58mon-bYwsIy8mzZjssc8KZy-GzpscKrc5ewb7106JY3uRQNprAHrpcGAPZ8uXUvVhrxp_FNn5Nf5KVxl2tm50L83_5nw0OZrbJ8Ceg7sZAw_Z41lbYbS9VDaST6TuKRb7W4XCKimZUn57LoQT2-Gkv6msJHCmqTgK02Q",
"e": "AQAB",
"use": "sig",
"kid": "maxkey_rsa",
"alg": "RS256",
"n": "vyfZwQuBLNvJDhmziUCFuAfIv-bC6ivodcR6PfanTt8XLd6G63Yx10YChAdsDACjoLz1tEU56WPp_ee_vcTSsEZT3ouWJYghuGI2j4XclXlEj0S7DzdpcBBpI4n5dr8K3iKY-3JUMZR1AMBHI50UaMST9ZTZJAjUPIYxkhRdca5lWBo4wGUh1yj_80-Bq6al0ia9S5NTzNLaJ18jSxFqZ79BAkBm-KjkP248YUk6WBGtYEAV5Fws4dpse4hrqJ3RRHiMZV1o1iTmPHz_l55ZSDP3vpYf6iKqKzoK2RmdjfH5mGpbc4-PclTs4GKfwZ7cWfrny6B7sMnQfzujCH996Q"
}
]
}

View File

@ -1,39 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration status="INFO">
<appenders>
<Console name="consolePrint" target="SYSTEM_OUT">
<PatternLayout pattern="%d{YYYY-MM-dd HH:mm:ss,SSS} [%t] %-5level %logger{36} - %msg%n" />
</Console>
<!--
<File name="File" fileName="logs/PipeLineRunner.log">
<PatternLayout pattern="%d{YYYY-MM-dd HH:mm:ss,SSS} [%t] %-5level %logger{36} - %msg%n" />
</File>
-->
<!-- 输出到文件按天或者超过80MB分割 -->
<RollingFile name="RollingFile" fileName="${catalina.home}/logs/maxkey.log" filePattern="${catalina.home}/logs/$${date:yyyy-MM}/maxkey-%d{yyyy-MM-dd}-%i.log.gz">
<!-- 需要记录的级别 -->
<!-- <ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY" /> -->
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss,SSS}:%4p %t (%F:%L) - %m%n" />
<Policies>
<OnStartupTriggeringPolicy />
<TimeBasedTriggeringPolicy />
<SizeBasedTriggeringPolicy size="512 MB" />
<!-- <SizeBasedTriggeringPolicy size="80 MB" /> -->
</Policies>
</RollingFile>
</appenders>
<loggers>
<Logger name="org.springframework" level="INFO"></Logger>
<Logger name="org.apache.logging" level="INFO"></Logger>
<Logger name="org.maxkey" level="DEBUG"></Logger>
<root level="INFO">
<appender-ref ref="consolePrint" />
<appender-ref ref="RollingFile" />
</root>
</loggers>
</configuration>

View File

@ -1,205 +0,0 @@
global.application=MaxKey\u5E94\u7528\u5B89\u5168\u7CFB\u7EDF
global.change.language=\u8BED\u97F3\u9009\u62E9
global.change.language.en=\u82F1\u6587
global.change.language.zh=\u4E2D\u6587
global.text.welcome=\u6B22\u8FCE\u60A8
global.text.manage=\u7BA1\u7406
global.text.copyright=\u7248\u6743\u6240\u6709
global.text.copyright.content=Copyright 2018-2019 shimingxy@163.com Licensed under the Apache License, Version 2.0
global.text.logout=\u9000\u51FA
global.logout.tip=\u6CE8\u9500\u6210\u529F
global.logout.text.suffix=\u91CD\u65B0\u767B\u5F55
global.logout.text.prefix=\u60A8\u5DF2\u7ECF\u6210\u529F\u9000\u51FA\u767B\u5F55\uFF0C\u8BF7\u5173\u95ED\u6D4F\u89C8\u5668\u6216\u8005
login.session.timeout.tip=\u767B\u5F55\u4F1A\u8BDD\u8D85\u65F6
login.session.timeout.prefix=\u60A8\u7684\u767B\u5F55\u4F1A\u8BDD\u5DF2\u7ECF\u8D85\u65F6\uFF0C\u8BF7
login.session.timeout.suffix=\u91CD\u65B0\u767B\u5F55
common.window.title=\u7A97\u53E3
common.alert.title=\u63D0\u793A\u4FE1\u606F
common.alert.closeText=\u5173\u95ED
common.conform.title=\u786E\u8BA4\u63D0\u793A
common.conform.yes=\u786E\u5B9A
common.conform.no=\u5173\u95ED
common.select.hintText=\u8BF7\u9009\u62E9\u60A8\u8981\u64CD\u4F5C\u7684\u6570\u636E
common.delete.hintText=\u60A8\u786E\u5B9A\u8981\u5220\u9664\u5417?
common.grid.loadtext=\u6B63\u5728\u52A0\u8F7D...
common.grid.loadnodata=\u6CA1\u6709\u67E5\u8BE2\u5230\u7B26\u5408\u6570\u636E
common.submit.hintText=\u60A8\u786E\u5B9A\u8981\u8FDB\u884C\u6B64\u9879\u64CD\u4F5C\u5417?
common.submit.errorText=\u6267\u884C\u64CD\u4F5C\u5931\u8D25
common.text.startdate=\u5F00\u59CB\u65F6\u95F4
common.text.enddate=\u7ED3\u675F\u65F6\u95F4
common.text.createdby=\u521B\u5EFA\u4EBA
common.text.createddate=\u521B\u5EFA\u65F6\u95F4
common.text.modifiedby=\u4FEE\u6539\u4EBA
common.text.modifieddate=\u4FEE\u6539\u65F6\u95F4
login.text.login.twofactor.obtain.valid=\u91CD\u65B0\u83B7\u53D6
login.text.login.twofactor.obtain=\u83B7\u53D6\u52A8\u6001\u9A8C\u8BC1\u7801
login.text.login.twofactor.obtain.valid.unit=\u79D2
login.text.login.twofactor.validTime=\u5269\u4F59\u65F6\u95F4
login.text.login.twofactor.validTime.unit=\u79D2
login.text.login.twofactor=\u5B89\u5168\u8BA4\u8BC1
login.text.login.normal=\u57FA\u672C\u8BA4\u8BC1
login.text.username=\u7528\u6237\u540D
login.text.password=\u5BC6&nbsp;&nbsp;&nbsp;&nbsp;\u7801
login.text.captcha=\u9A8C\u8BC1\u7801
login.text.remeberme=\u8BB0\u4F4F\u767B\u5F55
login.text.forgotpassword=\u5FD8\u8BB0\u5BC6\u7801
login.button.login=\u767B\u5F55
login.text.currenttime=\u65F6&nbsp;&nbsp;&nbsp;&nbsp;\u95F4
login.text.otherlogins=\u5176\u4ED6\u767B\u5F55\u65B9\u5F0F
login.text.register=\u7528\u6237\u6CE8\u518C
login.password.expired=\u5BC6\u7801\u8FC7\u671F
login.password.expired.tip=\u5BC6\u7801\u8FC7\u671F\uFF0C\u8BF7\u4FEE\u6539\u5BC6\u7801
login.password.oldPassword=\u539F\u5BC6\u7801
login.password.newPassword=\u65B0\u5BC6\u7801
login.password.confirmPassword=\u786E\u8BA4\u65B0\u5BC6\u7801
login.password.initial.change.tip=\u9996\u6B21\u767B\u5F55\uFF0C\u8BF7\u4FEE\u6539\u521D\u59CB\u5316\u5BC6\u7801
login.password.changepassword=\u5BC6\u7801\u4FEE\u6539
login.password.applogin.changepassword=\u5E94\u7528\u767B\u5F55\u5BC6\u7801\u8BBE\u7F6E
login.social.link=\u7ED1\u5B9A
login.social.unlink=\u89E3\u9664
login.social.icon=\u56FE\u6807
login.social.provider=\u4F9B\u5E94\u5546
userinfo.displayName=\u7528\u6237\u540D
userinfo.username=\u767B\u5F55\u8D26\u53F7
userinfo.email=\u90AE\u7BB1\u5730\u5740
userinfo.mobile=\u624B\u673A\u53F7\u7801
userinfo.userType=\u7528\u6237\u7C7B\u578B
userinfo.picture=\u5934\u50CF
userinfo.familyName=\u59D3
userinfo.givenName=\u540D
userinfo.middleName=\u4E2D\u95F4\u540D
userinfo.nickName=\u6635\u79F0
userinfo.gender=\u6027\u522B
userinfo.gender.female=\u5973
userinfo.gender.male=\u7537
userinfo.married=\u5A5A\u59FB\u72B6\u6001
userinfo.married.unknown=\u672A\u77E5
userinfo.married.single=\u5355\u8EAB
userinfo.married.married=\u5DF2\u5A5A
userinfo.married.divorce=\u79BB\u5F02
userinfo.married.widowed=\u4E27\u5076
userinfo.website=\u4e2a\u4eba\u4e3b\u9875
userinfo.idtype=\u8bc1\u4ef6\u7c7b\u578b
userinfo.idtype.unknown=\u672A\u77E5
userinfo.idtype.idcard=\u8EAB\u4EFD\u8BC1
userinfo.idtype.passport=\u62A4\u7167
userinfo.idtype.studentcard=\u5B66\u751F\u8BC1
userinfo.idtype.militarycard=\u519B\u4EBA\u8BC1
userinfo.idCardNo=\u8BC1\u4EF6\u53F7\u7801
userinfo.startWorkDate=\u5DE5\u4F5C\u5F00\u59CB\u65F6\u95F4
userinfo.preferredLanguage=\u8BED\u97F3\u504F\u597D
userinfo.timeZone=\u65F6\u533A
userinfo.locale=\u8BED\u8A00\u9009\u62E9
userinfo.employeeNumber=\u5458\u5DE5\u7F16\u53F7
userinfo.windowsAccount=AD\u57DF\u8D26\u53F7
userinfo.organization=\u6240\u5C5E\u673A\u6784
userinfo.division=\u5206\u652F\u673A\u6784
userinfo.department=\u90E8\u95E8
userinfo.costCenter=\u6210\u672C\u4E2D\u5FC3
userinfo.jobTitle=\u804C\u4F4D
userinfo.jobLevel=\u7EA7\u522B
userinfo.manager=\u4E0A\u7EA7\u7ECF\u7406
userinfo.assistant=\u52A9\u7406
userinfo.entryDate=\u5165\u804C\u65F6\u95F4
userinfo.quitDate=\u79BB\u804C\u65F6\u95F4
userinfo.workCountry=\u56FD\u5BB6
userinfo.workRegion=\u7701
userinfo.workLocality=\u57CE\u5E02
userinfo.workStreetAddress=\u5730\u5740
userinfo.workPostalCode=\u90AE\u7F16
userinfo.workFax=\u4F20\u771F
userinfo.workPhoneNumber=\u5DE5\u4F5C\u7535\u8BDD
userinfo.workEmail=\u5DE5\u4F5C\u90AE\u4EF6
userinfo.homeCountry=\u56FD\u5BB6
userinfo.homeRegion=\u7701
userinfo.homeLocality=\u57CE\u5E02
userinfo.homeStreetAddress=\u5BB6\u5EAD\u5730\u5740
userinfo.homePostalCode=\u5BB6\u5EAD\u90AE\u7F16
userinfo.homeFax=\u5BB6\u5EAD\u4F20\u771F
userinfo.homePhoneNumber=\u5BB6\u5EAD\u7535\u8BDD
userinfo.homeEmail=\u5BB6\u5EAD\u90AE\u7BB1
userinfo.authnType=\u767B\u5F55\u65B9\u5F0F
userinfo.authnType.authnType.1=\u666E\u901A\u767B\u5F55
userinfo.authnType.authnType.2=\u624B\u673A\u4EE4\u724C
userinfo.authnType.authnType.3=\u77ED\u4FE1\u9A8C\u8BC1
userinfo.authnType.authnType.4=\u90AE\u4EF6\u9A8C\u8BC1
userinfo.authnType.authnType.5=\u65F6\u95F4\u4EE4\u724C
userinfo.authnType.authnType.6=\u8BA1\u6570\u5668\u4EE4\u724C
userinfo.authnType.authnType.7=HOTP\u4EE4\u724C
userinfo.authnType.authnType.8=RSA\u4EE4\u724C
userinfo.authnType.authnType.9=\u6570\u5B57\u8BC1\u4E66
userinfo.authnType.authnType.10=USB Key
login.totp.sharedSecret=\u5171\u4EAB\u5BC6\u7801
login.totp.period=\u5468\u671F
login.totp.digits=\u6570\u5B57
login.totp.crypto=\u52A0\u5BC6\u65B9\u5F0F
login.totp.generate=\u91CD\u65B0\u751F\u6210
login.totp.title=TimeBased One Time Password
login.hotp.sharedSecret=\u5171\u4EAB\u5BC6\u7801
login.hotp.period=\u5468\u671F
login.hotp.digits=\u6570\u5B57
login.hotp.crypto=\u52A0\u5BC6\u65B9\u5F0F
login.hotp.generate=\u91CD\u65B0\u751F\u6210
login.hotp.title=HOTP One Time Password
login.counter.sharedSecret=\u5171\u4EAB\u5BC6\u7801
login.counter.period=\u5468\u671F
login.counter.digits=\u6570\u5B57
login.counter.crypto=\u52A0\u5BC6\u65B9\u5F0F
login.counter.generate=\u91CD\u65B0\u751F\u6210
login.counter.title=Counter Based One Time Password
apps.icon=\u56FE\u6807
apps.name=\u5E94\u7528\u540D\u79F0
apps.protocol=\u8BBF\u95EE\u534F\u8BAE
apps.category=\u7C7B\u578B
button.text.action=\u8BBF\u95EE
button.text.visit=\u8BBF\u95EE
button.text.save=\u4FDD\u5B58
button.text.select=\u8BF7\u9009\u62E9
button.text.search=\u67E5\u8BE2
button.text.expandsearch=\u5C55\u5F00
button.text.collapsesearch=\u6536\u7F29
log.loginhistory.id=\u7F16\u53F7
log.loginhistory.sessionId=\u4F1A\u8BDD
log.loginhistory.username=\u767B\u5F55\u540D
log.loginhistory.displayName=\u7528\u6237\u540D\u79F0
log.loginhistory.provider=\u63D0\u4F9B\u5546
log.loginhistory.message=\u72B6\u6001
log.loginhistory.loginType=\u767B\u5F55\u65B9\u5F0F
log.loginhistory.sourceIp=\u8BBF\u95EE\u5730\u5740
log.loginhistory.browser=\u6D4F\u89C8\u5668
log.loginhistory.loginTime=\u767B\u5F55\u65F6\u95F4
log.loginhistory.logoutTime=\u9000\u51FA\u65F6\u95F4
log.loginhistory.platform=\u5E73\u53F0
log.loginhistory.application=\u5E94\u7528
log.loginhistory.loginUrl=\u767B\u5F55\u5730\u5740
log.loginhistory.code=\u4EE3\u7801
log.loginhistory.rpUserInfo=\u7B2C\u4E09\u65B9
log.loginappshistory.id=\u7F16\u53F7
log.loginappshistory.sessionId=\u4F1A\u8BDD
log.loginappshistory.uid=\u7528\u6237\u7F16\u53F7
log.loginappshistory.username=\u767B\u5F55\u540D
log.loginappshistory.displayName=\u7528\u6237\u540D
log.loginappshistory.appId=\u5E94\u7528\u7F16\u53F7
log.loginappshistory.appName=\u5E94\u7528\u540D\u79F0
log.loginappshistory.loginTime=\u767B\u5F55\u65F6\u95F4
log.operate.servicename=\u670D\u52A1
log.operate.message=\u6D88\u606F
log.operate.content=\u5185\u5BB9
log.operate.messageType=\u6D88\u606F\u7C7B\u578B
log.operate.operateType=\u64CD\u4F5C\u7C7B\u578B
log.operate.username=\u64CD\u4F5C\u4EBA