diff --git a/.editorconfig b/.editorconfig
new file mode 100644
index 0000000000..a9ae158608
--- /dev/null
+++ b/.editorconfig
@@ -0,0 +1,14 @@
+# EditorConfig is awesome: http://EditorConfig.org
+
+# top-most EditorConfig file
+root = true
+
+# Unix-style newlines with a newline ending every file
+[*]
+end_of_line = lf
+insert_final_newline = true
+
+# 4 space - Tab indentation
+[*.{java,xml,js,html}]
+indent_style = tab
+indent_size = 4
diff --git a/.gitignore b/.gitignore
index 016a3b8f82..e663c16b8f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,4 +1,3 @@
-local-values.conf
target
*~
bin
@@ -10,3 +9,4 @@ bin
.classpath
/target
.springBeans
+nb-configuration.xml
diff --git a/.travis.yml b/.travis.yml
index dff5f3a5d0..3d619c8263 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1 +1,11 @@
language: java
+jdk:
+ - oraclejdk11
+sudo: false
+
+after_success:
+ - bash <(curl -s https://codecov.io/bash)
+
+cache:
+ directories:
+ - $HOME/.m2
diff --git a/CHANGELOG.md b/CHANGELOG.md
new file mode 100644
index 0000000000..96c6356a0c
--- /dev/null
+++ b/CHANGELOG.md
@@ -0,0 +1,43 @@
+Unreleased:
+
+*1.3.3*:
+- Authorization codes are now longer
+- Client/RS can parse the "sub" and "user_id" claims in introspection response
+- Database-direct queries for fetching tokens by user (optimization)
+- Device flow supports verification_uri_complete (must be turned on)
+- Long scopes display properly and are still checkable
+- Language system remebers when it can't find a file and stops throwing so many errors
+- Index added for refresh tokens
+- Updated to Spring Security 4.2.11
+- Updated Spring to 4.3.22
+- Change approve pages to use issuer instead of page context
+- Updated oracle database scripts
+
+*1.3.2*:
+- Added changelog
+- Set default redirect URI resolver strict matching to true
+- Fixed XSS vulnerability on redirect URI display on approval page
+- Removed MITRE from copyright
+- Disallow unsigned JWTs on client authentication
+- Upgraded Nimbus revision
+- Added French translation
+- Added hooks for custom JWT claims
+- Removed "Not Yet Implemented" tag from post-logout redirect URI
+
+*1.3.1*:
+- Added End Session endpoint
+- Fixed discovery endpoint
+- Downgrade MySQL connector dependency version from developer preview to GA release
+
+*1.3.0*:
+- Added device flow support
+- Added PKCE support
+- Modularized UI to allow better overlay and extensions
+- Modularized data import/export API
+- Added software statements to dynamic client registration
+- Added assertion processing framework
+- Removed ID tokens from storage
+- Removed structured scopes
+
+*1.2.6*:
+- Added strict HEART compliance mode
diff --git a/LICENSE.txt b/LICENSE.txt
index 1a04bce423..0e640e493b 100644
--- a/LICENSE.txt
+++ b/LICENSE.txt
@@ -1,8 +1,9 @@
-Copyright 2014 The MITRE Corporation
- and the MIT Kerberos and Internet Trust Consortium
+Copyright 2018 The MIT Internet Trust Consortium
+
+Portions copyright 2011-2013 The MITRE Corporation
Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
+you may not use this project except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
diff --git a/README.md b/README.md
new file mode 100644
index 0000000000..610579f550
--- /dev/null
+++ b/README.md
@@ -0,0 +1,31 @@
+# MITREid Connect
+---
+
+[](https://maven-badges.herokuapp.com/maven-central/org.mitre/openid-connect-parent) [](https://travis-ci.org/mitreid-connect/OpenID-Connect-Java-Spring-Server) [](https://codecov.io/github/mitreid-connect/OpenID-Connect-Java-Spring-Server)
+
+This project contains a certified OpenID Connect reference implementation in Java on the Spring platform, including a functioning [server library](openid-connect-server), [deployable server package](openid-connect-server-webapp), [client (RP) library](openid-connect-client), and general [utility libraries](openid-connect-common). The server can be used as an OpenID Connect Identity Provider as well as a general-purpose OAuth 2.0 Authorization Server.
+
+[](https://openid.net/certification/)
+
+More information about the project can be found:
+
+* [The project homepage on GitHub (with related projects)](https://github.com/mitreid-connect/)
+* [Full documentation](https://github.com/mitreid-connect/OpenID-Connect-Java-Spring-Server/wiki)
+* [Documentation for the Maven project and Java API](http://mitreid-connect.github.com/)
+* [Issue tracker (for bug reports and support requests)](https://github.com/mitreid-connect/OpenID-Connect-Java-Spring-Server/issues)
+* The mailing list for the project can be found at `mitreid-connect@mit.edu`, with [archives available online](https://mailman.mit.edu/mailman/listinfo/mitreid-connect).
+
+
+The authors and key contributors of the project include:
+
+* [Justin Richer](https://github.com/jricher/)
+* [Amanda Anganes](https://github.com/aanganes/)
+* [Michael Jett](https://github.com/jumbojett/)
+* [Michael Walsh](https://github.com/nemonik/)
+* [Steve Moore](https://github.com/srmoore)
+* [Mike Derryberry](https://github.com/mtderryberry)
+* [William Kim](https://github.com/wikkim)
+* [Mark Janssen](https://github.com/praseodym)
+
+
+Licensed under the Apache 2.0 license, for details see `LICENSE.txt`.
diff --git a/README.txt b/README.txt
deleted file mode 100644
index 41b58d9af5..0000000000
--- a/README.txt
+++ /dev/null
@@ -1,33 +0,0 @@
-An OpenID Connect reference implementation in Java on the Spring platform. For license information see LICENSE.txt.
-
-This code includes a functioning server (IdP) and client (RP) as well as utility libraries.
-
-The project homepage on GitHub is:
-
- https://github.com/mitreid-connect/
-
-Full documentation can be found online:
-
- https://github.com/mitreid-connect/OpenID-Connect-Java-Spring-Server/wiki
-
-Documentation for the Maven project and Java API can be found at:
-
- http://mitreid-connect.github.com/
-
-Issues can be reported at:
-
- https://github.com/mitreid-connect/OpenID-Connect-Java-Spring-Server/issues
-
-The mailing list for the project can be found at mitreid-connect@mit.edu, with archives available online:
-
- https://mailman.mit.edu/mailman/listinfo/mitreid-connect
-
-
-
-Authors: Justin Richer, Amanda Anganes, Michael Walsh, Michael Jett, Steve Moore, Mike Derryberry, William Kim
-
-
-
-
-Copyright 2014, The MITRE Corporation (http://www.mitre.org/)
- and the MIT Kerberos and Internet Trust Consortium (http://kit.mit.edu/)
diff --git a/README_zh_CN.md b/README_zh_CN.md
new file mode 100644
index 0000000000..4933b36836
--- /dev/null
+++ b/README_zh_CN.md
@@ -0,0 +1,38 @@
+# MITREid Connect
+---
+
+[](https://maven-badges.herokuapp.com/maven-central/org.mitre/openid-connect-parent) [](https://travis-ci.org/mitreid-connect/OpenID-Connect-Java-Spring-Server)
+
+此项目提供了一个业经认证的、用Java语言构筑于Spring平台之上的OpenID Connect参考实现,包括 [服务器端的实现库](openid-connect-server), [可部署的服务器包](openid-connect-server-webapp), [客户端 (RP) 的库](openid-connect-client), 以及 [工具类库](openid-connect-common)。该服务器可以用做OpenID Connect身份提供者,也可以用做一般意义上的OAuth 2.0授权服务器。
+
+[](https://openid.net/certification/)
+
+有关项目的更多信息参见:
+
+* [项目在GitHub上的主页 (及相关项目)](https://github.com/mitreid-connect/)
+* [完整的文档](https://github.com/mitreid-connect/OpenID-Connect-Java-Spring-Server/wiki)
+* [Maven文档及Java API](http://mitreid-connect.github.com/)
+* [问题(Issue)追踪系统 (用于报告bug及提交支持请求)](https://github.com/mitreid-connect/OpenID-Connect-Java-Spring-Server/issues)
+* 项目的邮件列表: `mitreid-connect@mit.edu`, 及其 [在线存档](https://mailman.mit.edu/mailman/listinfo/mitreid-connect).
+
+
+项目的作者及主要贡献者有:
+
+* [Justin Richer](https://github.com/jricher/)
+* [Amanda Anganes](https://github.com/aanganes/)
+* [Michael Jett](https://github.com/jumbojett/)
+* [Michael Walsh](https://github.com/nemonik/)
+* [Steve Moore](https://github.com/srmoore)
+* [Mike Derryberry](https://github.com/mtderryberry)
+* [William Kim](https://github.com/wikkim)
+* [Mark Janssen](https://github.com/praseodym)
+
+
+项目的中文译者:
+
+* [刘晓曦](https://github.com/liouxiao/)
+
+
+
+
+版权所有 ©2018 [MIT因特网信任联盟](http://www.mit-trust.org/). 采用Apache 2.0许可证, 详见 `LICENSE.txt`.
diff --git a/checkstyle.xml b/checkstyle.xml
index 7b96bdff67..06129daddb 100644
--- a/checkstyle.xml
+++ b/checkstyle.xml
@@ -1,20 +1,21 @@
+ Copyright 2018 The MIT Internet Trust Consortium
+
+ Portions copyright 2011-2013 The MITRE Corporation
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
diff --git a/docs/OAuth2.0_Diagrams.pdf b/docs/OAuth2.0_Diagrams.pdf
deleted file mode 100755
index 55b525e92b..0000000000
Binary files a/docs/OAuth2.0_Diagrams.pdf and /dev/null differ
diff --git a/docs/OpenID_Connect_Diagrams.pdf b/docs/OpenID_Connect_Diagrams.pdf
deleted file mode 100644
index a8da67ec49..0000000000
Binary files a/docs/OpenID_Connect_Diagrams.pdf and /dev/null differ
diff --git a/openid-connect-client/README.md b/openid-connect-client/README.md
index 13fbb7337f..5bddcdb6ed 100644
--- a/openid-connect-client/README.md
+++ b/openid-connect-client/README.md
@@ -2,132 +2,11 @@
## Overview ##
-This project contains an OpenID Connect Client implemented as a Spring Security AuthenticationFilter. The client facilitates a user's authentication into the secured application to an OpenID Connect Java Spring Server following the OpenID Connect Standard protocol.
-
-For an example of the Client configuration, see the [Simple Web App] project.
+This project contains an OpenID Connect Client implemented as a Spring Security AuthenticationFilter. The client facilitates a user's authentication into the secured application to an OpenID Connect Server following the OpenID Connect standard protocol.
## Configuring ##
-Configure the client by adding the following XML to your application context security making changes where necessary for your specific deployment.
-
-Open and define an HTTP security configuration with a reference to a custom ***AuthenticationEntryPoint***, described below:
-
-
-
-Specify the access attributes and/or filter list for a particular set of URLs needing protection:
-
-
-
-Indicate that ***OIDCAuthenticationFilter*** authentication filter should be incorporated into the security filter chain:
-
-
-
-Then close the HTTP security configuration:
-
-
-
-Define a custom ***AuthenticationEntryPoint*** to use a login URL via a bean declaration:
-
-
-
-
-
-NOTE: The ***loginFormUrl*** value is post-pended to the URI of the application being secured to define the ***redirect_uri***, the value passed to the OIDC Server and, if the ***OIDCAuthenticationUsingChooserFilter*** is configured, also the Account Chooser Application.
-
-Define an ***AuthenticationManager*** with a reference to a custom authentication provider, ***OpenIDConnectAuthenticationProvider***:
-
-
-
-
-
-Define the custom authentication provider. Note that it does not take a UserDetailsService as input at this time but instead makes a call to the UserInfoEndpoint to fill in user information.
-
-
-
-### Configuring the OIDCAuthenticationFilter ###
-
-The ***OIDCAuthenticationFilter*** filter is defined with the following properties:
-
-* ***authenticationManager*** -- a reference to the ***AuthenticationManager***
-* ***errorRedirectURI*** -- the URI of the Error redirect
-
-Additionally, it contains a set of convenience methods to pass through to parameters on the ***OIDCServerConfiguration*** object that defines attributes of the server that it connects to:
-
-* ***issuer*** -- the root issuer string of this server (required)
-* ***authorizationEndpointUrl*** -- the URL of the Authorization Endpoint (required)
-* ***tokenEndpointUrl*** -- the URL of the Token Endpoint (required)
-* ***jwkSigningUrl*** -- the URL of the JWK (public key) Endpoint for token verification
-* ***clientId*** -- the registered client identifier (required)
-* ***clientSecret*** -- the registered client secret
-* ***userInfoUrl*** -- the URL of the User Info Endpoint
-* ***scope*** -- space-separated list of scopes; the required value "openid" will always be prepended to the list given here
-
-Configure like so:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-### Configuring the OIDCAuthenticationUsingChooserFilter ###
-
-For talking to multiple IdPs using an Account chooser, the ***OIDCAuthenticationUsingChooserFilter*** can be configured and used. [The Client -- Account Chooser protocol] documentation details the protocol used between the Client and an Account Chooser application.
-
-The ***OIDCAuthenticationUsingChooserFilter*** Authentication Filter has the following properties:
-
-* ***authenticationManager*** -- a reference to the ***AuthenticationManager***,
-* ***errorRedirectURI*** -- the URI of the Error redirect,
-* ***accountChooserURI*** -- to denote the URI of the Account Chooser, and
-* ***accountChooserClient*** -- to identify the Client to the Account Chooser UI application.
-* ***oidcServerConfigs*** -- a map of ***OIDCserverConfiguration***s to encapsulate the settings necesary for the client to communicate with each respective OIDC server,
-
-Each ***OIDCServerConfiguration*** entry in ***OIDCserverConfiguration*** map is keyed to the ***issuer*** returned from the Account Chooser Application and enumerates the following properties:
+For an example of the Client configuration, see the [Simple Web App](https://github.com/mitreid-connect/simple-web-app) project.
-* ***authenticationManager*** -- a reference to the ***AuthenticationManager***,
-* ***issuer*** -- the root issuer string of this server (required)
-* ***authorizationEndpointUrl*** -- the URL of the Authorization Endpoint (required)
-* ***tokenEndpointUrl*** -- the URL of the Token Endpoint (required)
-* ***jwkSigningUrl*** -- the URL of the JWK (public key) Endpoint for token verification
-* ***clientId*** -- the registered client identifier (required)
-* ***clientSecret*** -- the registered client secret
-* ***userInfoUrl*** -- the URL of the User Info Endpoint
-* ***scope*** -- space-separated list of scopes; the required value "openid" will always be prepended to the list given here
+Full documentation is available on the [project documentation wiki pages](https://github.com/mitreid-connect/OpenID-Connect-Java-Spring-Server/wiki/Client-configuration).
-Configure like so:
-
-
-
-
-
-
-
-