http://blog.didispace.com/spring-security-oauth2-xjf-1/
http://blog.didispace.com/spring-security-oauth2-xjf-2/
http://blog.didispace.com/spring-security-oauth2-xjf-3/
https://www.cnblogs.com/davidwang456/p/6480681.html