初始化提交
This commit is contained in:
		
							
								
								
									
										31
									
								
								tulingmall-authcenter/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								tulingmall-authcenter/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,31 @@
 | 
			
		||||
HELP.md
 | 
			
		||||
target/
 | 
			
		||||
!.mvn/wrapper/maven-wrapper.jar
 | 
			
		||||
!**/src/main/**
 | 
			
		||||
!**/src/test/**
 | 
			
		||||
 | 
			
		||||
### STS ###
 | 
			
		||||
.apt_generated
 | 
			
		||||
.classpath
 | 
			
		||||
.factorypath
 | 
			
		||||
.project
 | 
			
		||||
.settings
 | 
			
		||||
.springBeans
 | 
			
		||||
.sts4-cache
 | 
			
		||||
 | 
			
		||||
### IntelliJ IDEA ###
 | 
			
		||||
.idea
 | 
			
		||||
*.iws
 | 
			
		||||
*.iml
 | 
			
		||||
*.ipr
 | 
			
		||||
 | 
			
		||||
### NetBeans ###
 | 
			
		||||
/nbproject/private/
 | 
			
		||||
/nbbuild/
 | 
			
		||||
/dist/
 | 
			
		||||
/nbdist/
 | 
			
		||||
/.nb-gradle/
 | 
			
		||||
build/
 | 
			
		||||
 | 
			
		||||
### VS Code ###
 | 
			
		||||
.vscode/
 | 
			
		||||
							
								
								
									
										117
									
								
								tulingmall-authcenter/.mvn/wrapper/MavenWrapperDownloader.java
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										117
									
								
								tulingmall-authcenter/.mvn/wrapper/MavenWrapperDownloader.java
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,117 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2007-present the original author or authors.
 | 
			
		||||
 *
 | 
			
		||||
 * 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
 | 
			
		||||
 *
 | 
			
		||||
 *      https://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.
 | 
			
		||||
 */
 | 
			
		||||
import java.net.*;
 | 
			
		||||
import java.io.*;
 | 
			
		||||
import java.nio.channels.*;
 | 
			
		||||
import java.util.Properties;
 | 
			
		||||
 | 
			
		||||
public class MavenWrapperDownloader {
 | 
			
		||||
 | 
			
		||||
    private static final String WRAPPER_VERSION = "0.5.6";
 | 
			
		||||
    /**
 | 
			
		||||
     * Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided.
 | 
			
		||||
     */
 | 
			
		||||
    private static final String DEFAULT_DOWNLOAD_URL = "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/"
 | 
			
		||||
        + WRAPPER_VERSION + "/maven-wrapper-" + WRAPPER_VERSION + ".jar";
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Path to the maven-wrapper.properties file, which might contain a downloadUrl property to
 | 
			
		||||
     * use instead of the default one.
 | 
			
		||||
     */
 | 
			
		||||
    private static final String MAVEN_WRAPPER_PROPERTIES_PATH =
 | 
			
		||||
            ".mvn/wrapper/maven-wrapper.properties";
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Path where the maven-wrapper.jar will be saved to.
 | 
			
		||||
     */
 | 
			
		||||
    private static final String MAVEN_WRAPPER_JAR_PATH =
 | 
			
		||||
            ".mvn/wrapper/maven-wrapper.jar";
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Name of the property which should be used to override the default download url for the wrapper.
 | 
			
		||||
     */
 | 
			
		||||
    private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl";
 | 
			
		||||
 | 
			
		||||
    public static void main(String args[]) {
 | 
			
		||||
        System.out.println("- Downloader started");
 | 
			
		||||
        File baseDirectory = new File(args[0]);
 | 
			
		||||
        System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath());
 | 
			
		||||
 | 
			
		||||
        // If the maven-wrapper.properties exists, read it and check if it contains a custom
 | 
			
		||||
        // wrapperUrl parameter.
 | 
			
		||||
        File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH);
 | 
			
		||||
        String url = DEFAULT_DOWNLOAD_URL;
 | 
			
		||||
        if(mavenWrapperPropertyFile.exists()) {
 | 
			
		||||
            FileInputStream mavenWrapperPropertyFileInputStream = null;
 | 
			
		||||
            try {
 | 
			
		||||
                mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile);
 | 
			
		||||
                Properties mavenWrapperProperties = new Properties();
 | 
			
		||||
                mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream);
 | 
			
		||||
                url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url);
 | 
			
		||||
            } catch (IOException e) {
 | 
			
		||||
                System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'");
 | 
			
		||||
            } finally {
 | 
			
		||||
                try {
 | 
			
		||||
                    if(mavenWrapperPropertyFileInputStream != null) {
 | 
			
		||||
                        mavenWrapperPropertyFileInputStream.close();
 | 
			
		||||
                    }
 | 
			
		||||
                } catch (IOException e) {
 | 
			
		||||
                    // Ignore ...
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        System.out.println("- Downloading from: " + url);
 | 
			
		||||
 | 
			
		||||
        File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH);
 | 
			
		||||
        if(!outputFile.getParentFile().exists()) {
 | 
			
		||||
            if(!outputFile.getParentFile().mkdirs()) {
 | 
			
		||||
                System.out.println(
 | 
			
		||||
                        "- ERROR creating output directory '" + outputFile.getParentFile().getAbsolutePath() + "'");
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        System.out.println("- Downloading to: " + outputFile.getAbsolutePath());
 | 
			
		||||
        try {
 | 
			
		||||
            downloadFileFromURL(url, outputFile);
 | 
			
		||||
            System.out.println("Done");
 | 
			
		||||
            System.exit(0);
 | 
			
		||||
        } catch (Throwable e) {
 | 
			
		||||
            System.out.println("- Error downloading");
 | 
			
		||||
            e.printStackTrace();
 | 
			
		||||
            System.exit(1);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private static void downloadFileFromURL(String urlString, File destination) throws Exception {
 | 
			
		||||
        if (System.getenv("MVNW_USERNAME") != null && System.getenv("MVNW_PASSWORD") != null) {
 | 
			
		||||
            String username = System.getenv("MVNW_USERNAME");
 | 
			
		||||
            char[] password = System.getenv("MVNW_PASSWORD").toCharArray();
 | 
			
		||||
            Authenticator.setDefault(new Authenticator() {
 | 
			
		||||
                @Override
 | 
			
		||||
                protected PasswordAuthentication getPasswordAuthentication() {
 | 
			
		||||
                    return new PasswordAuthentication(username, password);
 | 
			
		||||
                }
 | 
			
		||||
            });
 | 
			
		||||
        }
 | 
			
		||||
        URL website = new URL(urlString);
 | 
			
		||||
        ReadableByteChannel rbc;
 | 
			
		||||
        rbc = Channels.newChannel(website.openStream());
 | 
			
		||||
        FileOutputStream fos = new FileOutputStream(destination);
 | 
			
		||||
        fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
 | 
			
		||||
        fos.close();
 | 
			
		||||
        rbc.close();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								tulingmall-authcenter/.mvn/wrapper/maven-wrapper.jar
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								tulingmall-authcenter/.mvn/wrapper/maven-wrapper.jar
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										2
									
								
								tulingmall-authcenter/.mvn/wrapper/maven-wrapper.properties
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								tulingmall-authcenter/.mvn/wrapper/maven-wrapper.properties
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,2 @@
 | 
			
		||||
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.3/apache-maven-3.6.3-bin.zip
 | 
			
		||||
wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar
 | 
			
		||||
							
								
								
									
										310
									
								
								tulingmall-authcenter/mvnw
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										310
									
								
								tulingmall-authcenter/mvnw
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,310 @@
 | 
			
		||||
#!/bin/sh
 | 
			
		||||
# ----------------------------------------------------------------------------
 | 
			
		||||
# Licensed to the Apache Software Foundation (ASF) under one
 | 
			
		||||
# or more contributor license agreements.  See the NOTICE file
 | 
			
		||||
# distributed with this work for additional information
 | 
			
		||||
# regarding copyright ownership.  The ASF licenses this file
 | 
			
		||||
# to you 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
 | 
			
		||||
#
 | 
			
		||||
#    https://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.
 | 
			
		||||
# ----------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
# ----------------------------------------------------------------------------
 | 
			
		||||
# Maven Start Up Batch script
 | 
			
		||||
#
 | 
			
		||||
# Required ENV vars:
 | 
			
		||||
# ------------------
 | 
			
		||||
#   JAVA_HOME - location of a JDK home dir
 | 
			
		||||
#
 | 
			
		||||
# Optional ENV vars
 | 
			
		||||
# -----------------
 | 
			
		||||
#   M2_HOME - location of maven2's installed home dir
 | 
			
		||||
#   MAVEN_OPTS - parameters passed to the Java VM when running Maven
 | 
			
		||||
#     e.g. to debug Maven itself, use
 | 
			
		||||
#       set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
 | 
			
		||||
#   MAVEN_SKIP_RC - flag to disable loading of mavenrc files
 | 
			
		||||
# ----------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
if [ -z "$MAVEN_SKIP_RC" ] ; then
 | 
			
		||||
 | 
			
		||||
  if [ -f /etc/mavenrc ] ; then
 | 
			
		||||
    . /etc/mavenrc
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  if [ -f "$HOME/.mavenrc" ] ; then
 | 
			
		||||
    . "$HOME/.mavenrc"
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# OS specific support.  $var _must_ be set to either true or false.
 | 
			
		||||
cygwin=false;
 | 
			
		||||
darwin=false;
 | 
			
		||||
mingw=false
 | 
			
		||||
case "`uname`" in
 | 
			
		||||
  CYGWIN*) cygwin=true ;;
 | 
			
		||||
  MINGW*) mingw=true;;
 | 
			
		||||
  Darwin*) darwin=true
 | 
			
		||||
    # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home
 | 
			
		||||
    # See https://developer.apple.com/library/mac/qa/qa1170/_index.html
 | 
			
		||||
    if [ -z "$JAVA_HOME" ]; then
 | 
			
		||||
      if [ -x "/usr/libexec/java_home" ]; then
 | 
			
		||||
        export JAVA_HOME="`/usr/libexec/java_home`"
 | 
			
		||||
      else
 | 
			
		||||
        export JAVA_HOME="/Library/Java/Home"
 | 
			
		||||
      fi
 | 
			
		||||
    fi
 | 
			
		||||
    ;;
 | 
			
		||||
esac
 | 
			
		||||
 | 
			
		||||
if [ -z "$JAVA_HOME" ] ; then
 | 
			
		||||
  if [ -r /etc/gentoo-release ] ; then
 | 
			
		||||
    JAVA_HOME=`java-config --jre-home`
 | 
			
		||||
  fi
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if [ -z "$M2_HOME" ] ; then
 | 
			
		||||
  ## resolve links - $0 may be a link to maven's home
 | 
			
		||||
  PRG="$0"
 | 
			
		||||
 | 
			
		||||
  # need this for relative symlinks
 | 
			
		||||
  while [ -h "$PRG" ] ; do
 | 
			
		||||
    ls=`ls -ld "$PRG"`
 | 
			
		||||
    link=`expr "$ls" : '.*-> \(.*\)$'`
 | 
			
		||||
    if expr "$link" : '/.*' > /dev/null; then
 | 
			
		||||
      PRG="$link"
 | 
			
		||||
    else
 | 
			
		||||
      PRG="`dirname "$PRG"`/$link"
 | 
			
		||||
    fi
 | 
			
		||||
  done
 | 
			
		||||
 | 
			
		||||
  saveddir=`pwd`
 | 
			
		||||
 | 
			
		||||
  M2_HOME=`dirname "$PRG"`/..
 | 
			
		||||
 | 
			
		||||
  # make it fully qualified
 | 
			
		||||
  M2_HOME=`cd "$M2_HOME" && pwd`
 | 
			
		||||
 | 
			
		||||
  cd "$saveddir"
 | 
			
		||||
  # echo Using m2 at $M2_HOME
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# For Cygwin, ensure paths are in UNIX format before anything is touched
 | 
			
		||||
if $cygwin ; then
 | 
			
		||||
  [ -n "$M2_HOME" ] &&
 | 
			
		||||
    M2_HOME=`cygpath --unix "$M2_HOME"`
 | 
			
		||||
  [ -n "$JAVA_HOME" ] &&
 | 
			
		||||
    JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
 | 
			
		||||
  [ -n "$CLASSPATH" ] &&
 | 
			
		||||
    CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# For Mingw, ensure paths are in UNIX format before anything is touched
 | 
			
		||||
if $mingw ; then
 | 
			
		||||
  [ -n "$M2_HOME" ] &&
 | 
			
		||||
    M2_HOME="`(cd "$M2_HOME"; pwd)`"
 | 
			
		||||
  [ -n "$JAVA_HOME" ] &&
 | 
			
		||||
    JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if [ -z "$JAVA_HOME" ]; then
 | 
			
		||||
  javaExecutable="`which javac`"
 | 
			
		||||
  if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then
 | 
			
		||||
    # readlink(1) is not available as standard on Solaris 10.
 | 
			
		||||
    readLink=`which readlink`
 | 
			
		||||
    if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then
 | 
			
		||||
      if $darwin ; then
 | 
			
		||||
        javaHome="`dirname \"$javaExecutable\"`"
 | 
			
		||||
        javaExecutable="`cd \"$javaHome\" && pwd -P`/javac"
 | 
			
		||||
      else
 | 
			
		||||
        javaExecutable="`readlink -f \"$javaExecutable\"`"
 | 
			
		||||
      fi
 | 
			
		||||
      javaHome="`dirname \"$javaExecutable\"`"
 | 
			
		||||
      javaHome=`expr "$javaHome" : '\(.*\)/bin'`
 | 
			
		||||
      JAVA_HOME="$javaHome"
 | 
			
		||||
      export JAVA_HOME
 | 
			
		||||
    fi
 | 
			
		||||
  fi
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if [ -z "$JAVACMD" ] ; then
 | 
			
		||||
  if [ -n "$JAVA_HOME"  ] ; then
 | 
			
		||||
    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
 | 
			
		||||
      # IBM's JDK on AIX uses strange locations for the executables
 | 
			
		||||
      JAVACMD="$JAVA_HOME/jre/sh/java"
 | 
			
		||||
    else
 | 
			
		||||
      JAVACMD="$JAVA_HOME/bin/java"
 | 
			
		||||
    fi
 | 
			
		||||
  else
 | 
			
		||||
    JAVACMD="`which java`"
 | 
			
		||||
  fi
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if [ ! -x "$JAVACMD" ] ; then
 | 
			
		||||
  echo "Error: JAVA_HOME is not defined correctly." >&2
 | 
			
		||||
  echo "  We cannot execute $JAVACMD" >&2
 | 
			
		||||
  exit 1
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if [ -z "$JAVA_HOME" ] ; then
 | 
			
		||||
  echo "Warning: JAVA_HOME environment variable is not set."
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
 | 
			
		||||
 | 
			
		||||
# traverses directory structure from process work directory to filesystem root
 | 
			
		||||
# first directory with .mvn subdirectory is considered project base directory
 | 
			
		||||
find_maven_basedir() {
 | 
			
		||||
 | 
			
		||||
  if [ -z "$1" ]
 | 
			
		||||
  then
 | 
			
		||||
    echo "Path not specified to find_maven_basedir"
 | 
			
		||||
    return 1
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  basedir="$1"
 | 
			
		||||
  wdir="$1"
 | 
			
		||||
  while [ "$wdir" != '/' ] ; do
 | 
			
		||||
    if [ -d "$wdir"/.mvn ] ; then
 | 
			
		||||
      basedir=$wdir
 | 
			
		||||
      break
 | 
			
		||||
    fi
 | 
			
		||||
    # workaround for JBEAP-8937 (on Solaris 10/Sparc)
 | 
			
		||||
    if [ -d "${wdir}" ]; then
 | 
			
		||||
      wdir=`cd "$wdir/.."; pwd`
 | 
			
		||||
    fi
 | 
			
		||||
    # end of workaround
 | 
			
		||||
  done
 | 
			
		||||
  echo "${basedir}"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# concatenates all lines of a file
 | 
			
		||||
concat_lines() {
 | 
			
		||||
  if [ -f "$1" ]; then
 | 
			
		||||
    echo "$(tr -s '\n' ' ' < "$1")"
 | 
			
		||||
  fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
BASE_DIR=`find_maven_basedir "$(pwd)"`
 | 
			
		||||
if [ -z "$BASE_DIR" ]; then
 | 
			
		||||
  exit 1;
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
##########################################################################################
 | 
			
		||||
# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
 | 
			
		||||
# This allows using the maven wrapper in projects that prohibit checking in binary data.
 | 
			
		||||
##########################################################################################
 | 
			
		||||
if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then
 | 
			
		||||
    if [ "$MVNW_VERBOSE" = true ]; then
 | 
			
		||||
      echo "Found .mvn/wrapper/maven-wrapper.jar"
 | 
			
		||||
    fi
 | 
			
		||||
else
 | 
			
		||||
    if [ "$MVNW_VERBOSE" = true ]; then
 | 
			
		||||
      echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..."
 | 
			
		||||
    fi
 | 
			
		||||
    if [ -n "$MVNW_REPOURL" ]; then
 | 
			
		||||
      jarUrl="$MVNW_REPOURL/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
 | 
			
		||||
    else
 | 
			
		||||
      jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
 | 
			
		||||
    fi
 | 
			
		||||
    while IFS="=" read key value; do
 | 
			
		||||
      case "$key" in (wrapperUrl) jarUrl="$value"; break ;;
 | 
			
		||||
      esac
 | 
			
		||||
    done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties"
 | 
			
		||||
    if [ "$MVNW_VERBOSE" = true ]; then
 | 
			
		||||
      echo "Downloading from: $jarUrl"
 | 
			
		||||
    fi
 | 
			
		||||
    wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar"
 | 
			
		||||
    if $cygwin; then
 | 
			
		||||
      wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"`
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    if command -v wget > /dev/null; then
 | 
			
		||||
        if [ "$MVNW_VERBOSE" = true ]; then
 | 
			
		||||
          echo "Found wget ... using wget"
 | 
			
		||||
        fi
 | 
			
		||||
        if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
 | 
			
		||||
            wget "$jarUrl" -O "$wrapperJarPath"
 | 
			
		||||
        else
 | 
			
		||||
            wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD "$jarUrl" -O "$wrapperJarPath"
 | 
			
		||||
        fi
 | 
			
		||||
    elif command -v curl > /dev/null; then
 | 
			
		||||
        if [ "$MVNW_VERBOSE" = true ]; then
 | 
			
		||||
          echo "Found curl ... using curl"
 | 
			
		||||
        fi
 | 
			
		||||
        if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
 | 
			
		||||
            curl -o "$wrapperJarPath" "$jarUrl" -f
 | 
			
		||||
        else
 | 
			
		||||
            curl --user $MVNW_USERNAME:$MVNW_PASSWORD -o "$wrapperJarPath" "$jarUrl" -f
 | 
			
		||||
        fi
 | 
			
		||||
 | 
			
		||||
    else
 | 
			
		||||
        if [ "$MVNW_VERBOSE" = true ]; then
 | 
			
		||||
          echo "Falling back to using Java to download"
 | 
			
		||||
        fi
 | 
			
		||||
        javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java"
 | 
			
		||||
        # For Cygwin, switch paths to Windows format before running javac
 | 
			
		||||
        if $cygwin; then
 | 
			
		||||
          javaClass=`cygpath --path --windows "$javaClass"`
 | 
			
		||||
        fi
 | 
			
		||||
        if [ -e "$javaClass" ]; then
 | 
			
		||||
            if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
 | 
			
		||||
                if [ "$MVNW_VERBOSE" = true ]; then
 | 
			
		||||
                  echo " - Compiling MavenWrapperDownloader.java ..."
 | 
			
		||||
                fi
 | 
			
		||||
                # Compiling the Java class
 | 
			
		||||
                ("$JAVA_HOME/bin/javac" "$javaClass")
 | 
			
		||||
            fi
 | 
			
		||||
            if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
 | 
			
		||||
                # Running the downloader
 | 
			
		||||
                if [ "$MVNW_VERBOSE" = true ]; then
 | 
			
		||||
                  echo " - Running MavenWrapperDownloader.java ..."
 | 
			
		||||
                fi
 | 
			
		||||
                ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR")
 | 
			
		||||
            fi
 | 
			
		||||
        fi
 | 
			
		||||
    fi
 | 
			
		||||
fi
 | 
			
		||||
##########################################################################################
 | 
			
		||||
# End of extension
 | 
			
		||||
##########################################################################################
 | 
			
		||||
 | 
			
		||||
export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}
 | 
			
		||||
if [ "$MVNW_VERBOSE" = true ]; then
 | 
			
		||||
  echo $MAVEN_PROJECTBASEDIR
 | 
			
		||||
fi
 | 
			
		||||
MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
 | 
			
		||||
 | 
			
		||||
# For Cygwin, switch paths to Windows format before running java
 | 
			
		||||
if $cygwin; then
 | 
			
		||||
  [ -n "$M2_HOME" ] &&
 | 
			
		||||
    M2_HOME=`cygpath --path --windows "$M2_HOME"`
 | 
			
		||||
  [ -n "$JAVA_HOME" ] &&
 | 
			
		||||
    JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
 | 
			
		||||
  [ -n "$CLASSPATH" ] &&
 | 
			
		||||
    CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
 | 
			
		||||
  [ -n "$MAVEN_PROJECTBASEDIR" ] &&
 | 
			
		||||
    MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"`
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# Provide a "standardized" way to retrieve the CLI args that will
 | 
			
		||||
# work with both Windows and non-Windows executions.
 | 
			
		||||
MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@"
 | 
			
		||||
export MAVEN_CMD_LINE_ARGS
 | 
			
		||||
 | 
			
		||||
WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
 | 
			
		||||
 | 
			
		||||
exec "$JAVACMD" \
 | 
			
		||||
  $MAVEN_OPTS \
 | 
			
		||||
  -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
 | 
			
		||||
  "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
 | 
			
		||||
  ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"
 | 
			
		||||
							
								
								
									
										182
									
								
								tulingmall-authcenter/mvnw.cmd
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										182
									
								
								tulingmall-authcenter/mvnw.cmd
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,182 @@
 | 
			
		||||
@REM ----------------------------------------------------------------------------
 | 
			
		||||
@REM Licensed to the Apache Software Foundation (ASF) under one
 | 
			
		||||
@REM or more contributor license agreements.  See the NOTICE file
 | 
			
		||||
@REM distributed with this work for additional information
 | 
			
		||||
@REM regarding copyright ownership.  The ASF licenses this file
 | 
			
		||||
@REM to you under the Apache License, Version 2.0 (the
 | 
			
		||||
@REM "License"); you may not use this file except in compliance
 | 
			
		||||
@REM with the License.  You may obtain a copy of the License at
 | 
			
		||||
@REM
 | 
			
		||||
@REM    https://www.apache.org/licenses/LICENSE-2.0
 | 
			
		||||
@REM
 | 
			
		||||
@REM Unless required by applicable law or agreed to in writing,
 | 
			
		||||
@REM software distributed under the License is distributed on an
 | 
			
		||||
@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 | 
			
		||||
@REM KIND, either express or implied.  See the License for the
 | 
			
		||||
@REM specific language governing permissions and limitations
 | 
			
		||||
@REM under the License.
 | 
			
		||||
@REM ----------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
@REM ----------------------------------------------------------------------------
 | 
			
		||||
@REM Maven Start Up Batch script
 | 
			
		||||
@REM
 | 
			
		||||
@REM Required ENV vars:
 | 
			
		||||
@REM JAVA_HOME - location of a JDK home dir
 | 
			
		||||
@REM
 | 
			
		||||
@REM Optional ENV vars
 | 
			
		||||
@REM M2_HOME - location of maven2's installed home dir
 | 
			
		||||
@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
 | 
			
		||||
@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending
 | 
			
		||||
@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
 | 
			
		||||
@REM     e.g. to debug Maven itself, use
 | 
			
		||||
@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
 | 
			
		||||
@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
 | 
			
		||||
@REM ----------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
 | 
			
		||||
@echo off
 | 
			
		||||
@REM set title of command window
 | 
			
		||||
title %0
 | 
			
		||||
@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on'
 | 
			
		||||
@if "%MAVEN_BATCH_ECHO%" == "on"  echo %MAVEN_BATCH_ECHO%
 | 
			
		||||
 | 
			
		||||
@REM set %HOME% to equivalent of $HOME
 | 
			
		||||
if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
 | 
			
		||||
 | 
			
		||||
@REM Execute a user defined script before this one
 | 
			
		||||
if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
 | 
			
		||||
@REM check for pre script, once with legacy .bat ending and once with .cmd ending
 | 
			
		||||
if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat"
 | 
			
		||||
if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd"
 | 
			
		||||
:skipRcPre
 | 
			
		||||
 | 
			
		||||
@setlocal
 | 
			
		||||
 | 
			
		||||
set ERROR_CODE=0
 | 
			
		||||
 | 
			
		||||
@REM To isolate internal variables from possible post scripts, we use another setlocal
 | 
			
		||||
@setlocal
 | 
			
		||||
 | 
			
		||||
@REM ==== START VALIDATION ====
 | 
			
		||||
if not "%JAVA_HOME%" == "" goto OkJHome
 | 
			
		||||
 | 
			
		||||
echo.
 | 
			
		||||
echo Error: JAVA_HOME not found in your environment. >&2
 | 
			
		||||
echo Please set the JAVA_HOME variable in your environment to match the >&2
 | 
			
		||||
echo location of your Java installation. >&2
 | 
			
		||||
echo.
 | 
			
		||||
goto error
 | 
			
		||||
 | 
			
		||||
:OkJHome
 | 
			
		||||
if exist "%JAVA_HOME%\bin\java.exe" goto init
 | 
			
		||||
 | 
			
		||||
echo.
 | 
			
		||||
echo Error: JAVA_HOME is set to an invalid directory. >&2
 | 
			
		||||
echo JAVA_HOME = "%JAVA_HOME%" >&2
 | 
			
		||||
echo Please set the JAVA_HOME variable in your environment to match the >&2
 | 
			
		||||
echo location of your Java installation. >&2
 | 
			
		||||
echo.
 | 
			
		||||
goto error
 | 
			
		||||
 | 
			
		||||
@REM ==== END VALIDATION ====
 | 
			
		||||
 | 
			
		||||
:init
 | 
			
		||||
 | 
			
		||||
@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
 | 
			
		||||
@REM Fallback to current working directory if not found.
 | 
			
		||||
 | 
			
		||||
set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
 | 
			
		||||
IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
 | 
			
		||||
 | 
			
		||||
set EXEC_DIR=%CD%
 | 
			
		||||
set WDIR=%EXEC_DIR%
 | 
			
		||||
:findBaseDir
 | 
			
		||||
IF EXIST "%WDIR%"\.mvn goto baseDirFound
 | 
			
		||||
cd ..
 | 
			
		||||
IF "%WDIR%"=="%CD%" goto baseDirNotFound
 | 
			
		||||
set WDIR=%CD%
 | 
			
		||||
goto findBaseDir
 | 
			
		||||
 | 
			
		||||
:baseDirFound
 | 
			
		||||
set MAVEN_PROJECTBASEDIR=%WDIR%
 | 
			
		||||
cd "%EXEC_DIR%"
 | 
			
		||||
goto endDetectBaseDir
 | 
			
		||||
 | 
			
		||||
:baseDirNotFound
 | 
			
		||||
set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
 | 
			
		||||
cd "%EXEC_DIR%"
 | 
			
		||||
 | 
			
		||||
:endDetectBaseDir
 | 
			
		||||
 | 
			
		||||
IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
 | 
			
		||||
 | 
			
		||||
@setlocal EnableExtensions EnableDelayedExpansion
 | 
			
		||||
for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
 | 
			
		||||
@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
 | 
			
		||||
 | 
			
		||||
:endReadAdditionalConfig
 | 
			
		||||
 | 
			
		||||
SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
 | 
			
		||||
set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
 | 
			
		||||
set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
 | 
			
		||||
 | 
			
		||||
set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
 | 
			
		||||
 | 
			
		||||
FOR /F "tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO (
 | 
			
		||||
    IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
 | 
			
		||||
@REM This allows using the maven wrapper in projects that prohibit checking in binary data.
 | 
			
		||||
if exist %WRAPPER_JAR% (
 | 
			
		||||
    if "%MVNW_VERBOSE%" == "true" (
 | 
			
		||||
        echo Found %WRAPPER_JAR%
 | 
			
		||||
    )
 | 
			
		||||
) else (
 | 
			
		||||
    if not "%MVNW_REPOURL%" == "" (
 | 
			
		||||
        SET DOWNLOAD_URL="%MVNW_REPOURL%/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
 | 
			
		||||
    )
 | 
			
		||||
    if "%MVNW_VERBOSE%" == "true" (
 | 
			
		||||
        echo Couldn't find %WRAPPER_JAR%, downloading it ...
 | 
			
		||||
        echo Downloading from: %DOWNLOAD_URL%
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
    powershell -Command "&{"^
 | 
			
		||||
		"$webclient = new-object System.Net.WebClient;"^
 | 
			
		||||
		"if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^
 | 
			
		||||
		"$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^
 | 
			
		||||
		"}"^
 | 
			
		||||
		"[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^
 | 
			
		||||
		"}"
 | 
			
		||||
    if "%MVNW_VERBOSE%" == "true" (
 | 
			
		||||
        echo Finished downloading %WRAPPER_JAR%
 | 
			
		||||
    )
 | 
			
		||||
)
 | 
			
		||||
@REM End of extension
 | 
			
		||||
 | 
			
		||||
@REM Provide a "standardized" way to retrieve the CLI args that will
 | 
			
		||||
@REM work with both Windows and non-Windows executions.
 | 
			
		||||
set MAVEN_CMD_LINE_ARGS=%*
 | 
			
		||||
 | 
			
		||||
%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
 | 
			
		||||
if ERRORLEVEL 1 goto error
 | 
			
		||||
goto end
 | 
			
		||||
 | 
			
		||||
:error
 | 
			
		||||
set ERROR_CODE=1
 | 
			
		||||
 | 
			
		||||
:end
 | 
			
		||||
@endlocal & set ERROR_CODE=%ERROR_CODE%
 | 
			
		||||
 | 
			
		||||
if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost
 | 
			
		||||
@REM check for post script, once with legacy .bat ending and once with .cmd ending
 | 
			
		||||
if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat"
 | 
			
		||||
if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd"
 | 
			
		||||
:skipRcPost
 | 
			
		||||
 | 
			
		||||
@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
 | 
			
		||||
if "%MAVEN_BATCH_PAUSE%" == "on" pause
 | 
			
		||||
 | 
			
		||||
if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE%
 | 
			
		||||
 | 
			
		||||
exit /B %ERROR_CODE%
 | 
			
		||||
							
								
								
									
										101
									
								
								tulingmall-authcenter/pom.xml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										101
									
								
								tulingmall-authcenter/pom.xml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,101 @@
 | 
			
		||||
<?xml version="1.0" encoding="UTF-8"?>
 | 
			
		||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 | 
			
		||||
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
 | 
			
		||||
	<modelVersion>4.0.0</modelVersion>
 | 
			
		||||
	<parent>
 | 
			
		||||
		<groupId>com.tuling</groupId>
 | 
			
		||||
		<artifactId>tuling-mall</artifactId>
 | 
			
		||||
		<version>0.0.5</version>
 | 
			
		||||
	</parent>
 | 
			
		||||
	<artifactId>tulingmall-authcenter</artifactId>
 | 
			
		||||
	<name>tulingmall-authcenter</name>
 | 
			
		||||
	<description>认证中心,专门给网关授权认证的</description>
 | 
			
		||||
 | 
			
		||||
	<properties>
 | 
			
		||||
		<java.version>1.8</java.version>
 | 
			
		||||
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
 | 
			
		||||
	</properties>
 | 
			
		||||
 | 
			
		||||
	<dependencies>
 | 
			
		||||
		<dependency>
 | 
			
		||||
			<groupId>com.tuling</groupId>
 | 
			
		||||
			<artifactId>tulingmall-common</artifactId>
 | 
			
		||||
		</dependency>
 | 
			
		||||
<!--		<dependency>-->
 | 
			
		||||
<!--			<groupId>com.tuling</groupId>-->
 | 
			
		||||
<!--			<artifactId>tulingmall-core</artifactId>-->
 | 
			
		||||
<!--		</dependency>-->
 | 
			
		||||
		<dependency>
 | 
			
		||||
			<groupId>com.baomidou</groupId>
 | 
			
		||||
			<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
 | 
			
		||||
			<exclusions>
 | 
			
		||||
				<exclusion>
 | 
			
		||||
					<groupId>org.springframework.boot</groupId>
 | 
			
		||||
					<artifactId>spring-boot-starter-jdbc</artifactId>
 | 
			
		||||
				</exclusion>
 | 
			
		||||
			</exclusions>
 | 
			
		||||
		</dependency>
 | 
			
		||||
		<dependency>
 | 
			
		||||
			<groupId>org.springframework.boot</groupId>
 | 
			
		||||
			<artifactId>spring-boot-starter</artifactId>
 | 
			
		||||
		</dependency>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		<dependency>
 | 
			
		||||
			<groupId>org.springframework.boot</groupId>
 | 
			
		||||
			<artifactId>spring-boot-starter-web</artifactId>
 | 
			
		||||
		</dependency>
 | 
			
		||||
 | 
			
		||||
		<!--nacos的依赖-->
 | 
			
		||||
		<dependency>
 | 
			
		||||
			<groupId>com.alibaba.cloud</groupId>
 | 
			
		||||
			<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
 | 
			
		||||
		</dependency>
 | 
			
		||||
 | 
			
		||||
		<!--SpringSecurity的依赖-->
 | 
			
		||||
		<dependency>
 | 
			
		||||
			<groupId>org.springframework.cloud</groupId>
 | 
			
		||||
			<artifactId>spring-cloud-starter-oauth2</artifactId>
 | 
			
		||||
		</dependency>
 | 
			
		||||
		<!--mall中MBG生成模块
 | 
			
		||||
                <dependency>
 | 
			
		||||
                    <groupId>com.tuling</groupId>
 | 
			
		||||
                    <artifactId>tulingmall-mbg</artifactId>
 | 
			
		||||
                </dependency> -->
 | 
			
		||||
 | 
			
		||||
		<dependency>
 | 
			
		||||
			<groupId>org.springframework.boot</groupId>
 | 
			
		||||
			<artifactId>spring-boot-configuration-processor</artifactId>
 | 
			
		||||
			<optional>true</optional>
 | 
			
		||||
		</dependency>
 | 
			
		||||
 | 
			
		||||
		<dependency>
 | 
			
		||||
			<groupId>com.alibaba.cloud</groupId>
 | 
			
		||||
			<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
 | 
			
		||||
		</dependency>
 | 
			
		||||
 | 
			
		||||
		<dependency>
 | 
			
		||||
			<groupId>mysql</groupId>
 | 
			
		||||
			<artifactId>mysql-connector-java</artifactId>
 | 
			
		||||
		</dependency>
 | 
			
		||||
 | 
			
		||||
	</dependencies>
 | 
			
		||||
 | 
			
		||||
	<build>
 | 
			
		||||
		<plugins>
 | 
			
		||||
			<plugin>
 | 
			
		||||
				<groupId>org.springframework.boot</groupId>
 | 
			
		||||
				<artifactId>spring-boot-maven-plugin</artifactId>
 | 
			
		||||
				<version>2.3.2.RELEASE</version>
 | 
			
		||||
				<executions>
 | 
			
		||||
					<execution>
 | 
			
		||||
						<goals>
 | 
			
		||||
							<goal>repackage</goal>
 | 
			
		||||
						</goals>
 | 
			
		||||
					</execution>
 | 
			
		||||
				</executions>
 | 
			
		||||
			</plugin>
 | 
			
		||||
		</plugins>
 | 
			
		||||
	</build>
 | 
			
		||||
 | 
			
		||||
</project>
 | 
			
		||||
@@ -0,0 +1,14 @@
 | 
			
		||||
package com.tuling;
 | 
			
		||||
 | 
			
		||||
import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure;
 | 
			
		||||
import org.springframework.boot.SpringApplication;
 | 
			
		||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
 | 
			
		||||
 | 
			
		||||
@SpringBootApplication(exclude = DruidDataSourceAutoConfigure.class)
 | 
			
		||||
public class TulingmallAuthcenterApplication {
 | 
			
		||||
 | 
			
		||||
	public static void main(String[] args) {
 | 
			
		||||
		SpringApplication.run(TulingmallAuthcenterApplication.class, args);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@@ -0,0 +1,40 @@
 | 
			
		||||
package com.tuling.component;
 | 
			
		||||
 | 
			
		||||
import com.tuling.tulingmall.domain.MemberDetails;
 | 
			
		||||
import org.springframework.security.oauth2.common.DefaultOAuth2AccessToken;
 | 
			
		||||
import org.springframework.security.oauth2.common.OAuth2AccessToken;
 | 
			
		||||
import org.springframework.security.oauth2.provider.OAuth2Authentication;
 | 
			
		||||
import org.springframework.security.oauth2.provider.token.TokenEnhancer;
 | 
			
		||||
 | 
			
		||||
import java.util.HashMap;
 | 
			
		||||
import java.util.Map;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
* @vlog: 高于生活,源于生活
 | 
			
		||||
* @desc: 类的描述:jwt自定义增强器(根据自己的业务需求添加非敏感字段)
 | 
			
		||||
* @author: smlz
 | 
			
		||||
* @createDate: 2020/1/21 21:51
 | 
			
		||||
* @version: 1.0
 | 
			
		||||
*/
 | 
			
		||||
public class TulingTokenEnhancer implements TokenEnhancer {
 | 
			
		||||
    @Override
 | 
			
		||||
    public OAuth2AccessToken enhance(OAuth2AccessToken accessToken, OAuth2Authentication authentication) {
 | 
			
		||||
 | 
			
		||||
        MemberDetails memberDetails = (MemberDetails) authentication.getPrincipal();
 | 
			
		||||
 | 
			
		||||
        final Map<String, Object> additionalInfo = new HashMap<>();
 | 
			
		||||
 | 
			
		||||
        final Map<String, Object> retMap = new HashMap<>();
 | 
			
		||||
 | 
			
		||||
        //这里暴露memberId到Jwt的令牌中,后期可以根据自己的业务需要 进行添加字段
 | 
			
		||||
        additionalInfo.put("memberId",memberDetails.getUmsMember().getId());
 | 
			
		||||
        additionalInfo.put("nickName",memberDetails.getUmsMember().getNickname());
 | 
			
		||||
        additionalInfo.put("integration",memberDetails.getUmsMember().getIntegration());
 | 
			
		||||
 | 
			
		||||
        retMap.put("additionalInfo",additionalInfo);
 | 
			
		||||
 | 
			
		||||
        ((DefaultOAuth2AccessToken) accessToken).setAdditionalInformation(retMap);
 | 
			
		||||
 | 
			
		||||
        return accessToken;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -0,0 +1,15 @@
 | 
			
		||||
package com.tuling.config;
 | 
			
		||||
 | 
			
		||||
import org.mybatis.spring.annotation.MapperScan;
 | 
			
		||||
import org.springframework.context.annotation.Configuration;
 | 
			
		||||
import org.springframework.transaction.annotation.EnableTransactionManagement;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * MyBatis配置类
 | 
			
		||||
 * Created by macro on 2019/4/8.
 | 
			
		||||
 */
 | 
			
		||||
@Configuration
 | 
			
		||||
@EnableTransactionManagement
 | 
			
		||||
@MapperScan({"com.tuling.tulingmall.mapper"})
 | 
			
		||||
public class MyBatisConfig {
 | 
			
		||||
}
 | 
			
		||||
@@ -0,0 +1,150 @@
 | 
			
		||||
package com.tuling.config;
 | 
			
		||||
 | 
			
		||||
import com.tuling.component.TulingTokenEnhancer;
 | 
			
		||||
import com.tuling.properties.JwtCAProperties;
 | 
			
		||||
import com.tuling.tulingmall.service.TulingUserDetailService;
 | 
			
		||||
import org.springframework.beans.factory.annotation.Autowired;
 | 
			
		||||
import org.springframework.boot.context.properties.EnableConfigurationProperties;
 | 
			
		||||
import org.springframework.context.annotation.Bean;
 | 
			
		||||
import org.springframework.context.annotation.Configuration;
 | 
			
		||||
import org.springframework.core.io.ClassPathResource;
 | 
			
		||||
import org.springframework.security.authentication.AuthenticationManager;
 | 
			
		||||
import org.springframework.security.oauth2.config.annotation.configurers.ClientDetailsServiceConfigurer;
 | 
			
		||||
import org.springframework.security.oauth2.config.annotation.web.configuration.AuthorizationServerConfigurerAdapter;
 | 
			
		||||
import org.springframework.security.oauth2.config.annotation.web.configuration.EnableAuthorizationServer;
 | 
			
		||||
import org.springframework.security.oauth2.config.annotation.web.configurers.AuthorizationServerEndpointsConfigurer;
 | 
			
		||||
import org.springframework.security.oauth2.config.annotation.web.configurers.AuthorizationServerSecurityConfigurer;
 | 
			
		||||
import org.springframework.security.oauth2.provider.ClientDetailsService;
 | 
			
		||||
import org.springframework.security.oauth2.provider.client.JdbcClientDetailsService;
 | 
			
		||||
import org.springframework.security.oauth2.provider.token.TokenEnhancerChain;
 | 
			
		||||
import org.springframework.security.oauth2.provider.token.TokenStore;
 | 
			
		||||
import org.springframework.security.oauth2.provider.token.store.JwtAccessTokenConverter;
 | 
			
		||||
import org.springframework.security.oauth2.provider.token.store.JwtTokenStore;
 | 
			
		||||
import org.springframework.security.rsa.crypto.KeyStoreKeyFactory;
 | 
			
		||||
 | 
			
		||||
import javax.sql.DataSource;
 | 
			
		||||
import java.security.KeyPair;
 | 
			
		||||
import java.util.Arrays;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
* @vlog: 高于生活,源于生活
 | 
			
		||||
* @desc: 类的描述:认证服务器配置
 | 
			
		||||
* @author: smlz
 | 
			
		||||
* @createDate: 2020/1/21 21:48
 | 
			
		||||
* @version: 1.0
 | 
			
		||||
*/
 | 
			
		||||
@Configuration
 | 
			
		||||
@EnableAuthorizationServer
 | 
			
		||||
@EnableConfigurationProperties(value = JwtCAProperties.class)
 | 
			
		||||
public class TulingAuthServerConfig extends AuthorizationServerConfigurerAdapter {
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    @Autowired
 | 
			
		||||
    private AuthenticationManager authenticationManager;
 | 
			
		||||
 | 
			
		||||
    @Autowired
 | 
			
		||||
    private DataSource dataSource;
 | 
			
		||||
 | 
			
		||||
    @Autowired
 | 
			
		||||
    private TulingUserDetailService tulingUserDetailService;
 | 
			
		||||
 | 
			
		||||
    @Autowired
 | 
			
		||||
    private JwtCAProperties jwtCAProperties;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 方法实现说明:我们颁发的token通过jwt存储
 | 
			
		||||
     * @author:smlz
 | 
			
		||||
     * @return:
 | 
			
		||||
     * @exception:
 | 
			
		||||
     * @date:2020/1/21 21:49
 | 
			
		||||
     */
 | 
			
		||||
    @Bean
 | 
			
		||||
    public TokenStore tokenStore(){
 | 
			
		||||
        return new JwtTokenStore(jwtAccessTokenConverter());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Bean
 | 
			
		||||
    public JwtAccessTokenConverter jwtAccessTokenConverter() {
 | 
			
		||||
        JwtAccessTokenConverter converter = new JwtAccessTokenConverter();
 | 
			
		||||
        //jwt的密钥
 | 
			
		||||
        converter.setKeyPair(keyPair());
 | 
			
		||||
        return converter;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Bean
 | 
			
		||||
    public KeyPair keyPair() {
 | 
			
		||||
        KeyStoreKeyFactory keyStoreKeyFactory = new KeyStoreKeyFactory(new ClassPathResource(jwtCAProperties.getKeyPairName()), jwtCAProperties.getKeyPairSecret().toCharArray());
 | 
			
		||||
        return keyStoreKeyFactory.getKeyPair(jwtCAProperties.getKeyPairAlias(), jwtCAProperties.getKeyPairStoreSecret().toCharArray());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    @Bean
 | 
			
		||||
    public TulingTokenEnhancer tulingTokenEnhancer() {
 | 
			
		||||
        return new TulingTokenEnhancer();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 方法实现说明:认证服务器能够给哪些 客户端颁发token  我们需要把客户端的配置 存储到
 | 
			
		||||
     * 数据库中 可以基于内存存储和db存储
 | 
			
		||||
     * @author:smlz
 | 
			
		||||
     * @return:
 | 
			
		||||
     * @exception:
 | 
			
		||||
     * @date:2020/1/15 20:18
 | 
			
		||||
     */
 | 
			
		||||
    @Override
 | 
			
		||||
    public void configure(ClientDetailsServiceConfigurer clients) throws Exception {
 | 
			
		||||
        clients.withClientDetails(clientDetails());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 方法实现说明:用于查找我们第三方客户端的组件 主要用于查找 数据库表 oauth_client_details
 | 
			
		||||
     * @author:smlz
 | 
			
		||||
     * @return:
 | 
			
		||||
     * @exception:
 | 
			
		||||
     * @date:2020/1/15 20:19
 | 
			
		||||
     */
 | 
			
		||||
    @Bean
 | 
			
		||||
    public ClientDetailsService clientDetails() {
 | 
			
		||||
        return new JdbcClientDetailsService(dataSource);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 方法实现说明:授权服务器的配置的配置
 | 
			
		||||
     * @author:smlz
 | 
			
		||||
     * @return:
 | 
			
		||||
     * @exception:
 | 
			
		||||
     * @date:2020/1/15 20:21
 | 
			
		||||
     */
 | 
			
		||||
    @Override
 | 
			
		||||
    public void configure(AuthorizationServerEndpointsConfigurer endpoints) throws Exception {
 | 
			
		||||
 | 
			
		||||
        TokenEnhancerChain tokenEnhancerChain = new TokenEnhancerChain();
 | 
			
		||||
        tokenEnhancerChain.setTokenEnhancers(Arrays.asList(tulingTokenEnhancer(),jwtAccessTokenConverter()));
 | 
			
		||||
 | 
			
		||||
        endpoints.tokenStore(tokenStore()) //授权服务器颁发的token 怎么存储的
 | 
			
		||||
                .tokenEnhancer(tokenEnhancerChain)
 | 
			
		||||
                .userDetailsService(tulingUserDetailService) //用户来获取token的时候需要 进行账号密码
 | 
			
		||||
                .authenticationManager(authenticationManager);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 方法实现说明:授权服务器安全配置
 | 
			
		||||
     * @author:smlz
 | 
			
		||||
     * @return:
 | 
			
		||||
     * @exception:
 | 
			
		||||
     * @date:2020/1/15 20:23
 | 
			
		||||
     */
 | 
			
		||||
    @Override
 | 
			
		||||
    public void configure(AuthorizationServerSecurityConfigurer security) throws Exception {
 | 
			
		||||
        //第三方客户端校验token需要带入 clientId 和clientSecret来校验
 | 
			
		||||
        security .checkTokenAccess("isAuthenticated()")
 | 
			
		||||
                 .tokenKeyAccess("isAuthenticated()");//来获取我们的tokenKey需要带入clientId,clientSecret
 | 
			
		||||
 | 
			
		||||
        security.allowFormAuthenticationForClients();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@@ -0,0 +1,72 @@
 | 
			
		||||
package com.tuling.config;
 | 
			
		||||
 | 
			
		||||
import com.tuling.tulingmall.service.TulingUserDetailService;
 | 
			
		||||
import org.springframework.beans.factory.annotation.Autowired;
 | 
			
		||||
import org.springframework.context.annotation.Bean;
 | 
			
		||||
import org.springframework.context.annotation.Configuration;
 | 
			
		||||
import org.springframework.security.authentication.AuthenticationManager;
 | 
			
		||||
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
 | 
			
		||||
import org.springframework.security.config.annotation.web.builders.WebSecurity;
 | 
			
		||||
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
 | 
			
		||||
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
 | 
			
		||||
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
 | 
			
		||||
import org.springframework.security.crypto.password.PasswordEncoder;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @vlog: 高于生活,源于生活
 | 
			
		||||
 * @desc: 类的描述:授权中心安全配置
 | 
			
		||||
 * @author: smlz
 | 
			
		||||
 * @createDate: 2019/12/20 16:08
 | 
			
		||||
 * @version: 1.0
 | 
			
		||||
 */
 | 
			
		||||
@Configuration
 | 
			
		||||
@EnableWebSecurity
 | 
			
		||||
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
 | 
			
		||||
 | 
			
		||||
    @Autowired
 | 
			
		||||
    private TulingUserDetailService tulingUserDetailService;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 方法实现说明:用于构建用户认证组件,需要传递userDetailsService和密码加密器
 | 
			
		||||
     * @author:smlz
 | 
			
		||||
     * @param auth
 | 
			
		||||
     * @return:
 | 
			
		||||
     * @exception:
 | 
			
		||||
     * @date:2019/12/25 14:31
 | 
			
		||||
     */
 | 
			
		||||
    @Override
 | 
			
		||||
    protected void configure(AuthenticationManagerBuilder auth) throws Exception {
 | 
			
		||||
        auth.userDetailsService(tulingUserDetailService).passwordEncoder(passwordEncoder());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 设置前台静态资源不拦截
 | 
			
		||||
     * @param web
 | 
			
		||||
     * @throws Exception
 | 
			
		||||
     */
 | 
			
		||||
    @Override
 | 
			
		||||
    public void configure(WebSecurity web) throws Exception {
 | 
			
		||||
        web.ignoring().antMatchers("/assets/**", "/css/**", "/images/**");
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    @Bean
 | 
			
		||||
    public PasswordEncoder passwordEncoder() {
 | 
			
		||||
        return new BCryptPasswordEncoder();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Bean
 | 
			
		||||
    public AuthenticationManager authenticationManagerBean() throws Exception {
 | 
			
		||||
        return super.authenticationManagerBean();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static void main(String[] args) {
 | 
			
		||||
        System.out.println(new BCryptPasswordEncoder().encode("test"));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -0,0 +1,40 @@
 | 
			
		||||
package com.tuling.properties;
 | 
			
		||||
 | 
			
		||||
import lombok.Data;
 | 
			
		||||
import org.springframework.boot.context.properties.ConfigurationProperties;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
* @vlog: 高于生活,源于生活
 | 
			
		||||
* @desc: 类的描述: jwt 证书配置
 | 
			
		||||
* @author: smlz
 | 
			
		||||
* @createDate: 2020/1/21 21:56
 | 
			
		||||
* @version: 1.0
 | 
			
		||||
*/
 | 
			
		||||
@Data
 | 
			
		||||
@ConfigurationProperties(prefix = "tuling.jwt")
 | 
			
		||||
public class JwtCAProperties {
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 证书名称
 | 
			
		||||
     */
 | 
			
		||||
    private String keyPairName;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 证书别名
 | 
			
		||||
     */
 | 
			
		||||
    private String keyPairAlias;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 证书私钥
 | 
			
		||||
     */
 | 
			
		||||
    private String keyPairSecret;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 证书存储密钥
 | 
			
		||||
     */
 | 
			
		||||
    private String keyPairStoreSecret;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@@ -0,0 +1,61 @@
 | 
			
		||||
package com.tuling.tulingmall.domain;
 | 
			
		||||
 | 
			
		||||
import com.tuling.tulingmall.model.UmsMember;
 | 
			
		||||
import org.springframework.security.core.GrantedAuthority;
 | 
			
		||||
import org.springframework.security.core.authority.SimpleGrantedAuthority;
 | 
			
		||||
import org.springframework.security.core.userdetails.UserDetails;
 | 
			
		||||
 | 
			
		||||
import java.util.Arrays;
 | 
			
		||||
import java.util.Collection;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 会员详情封装
 | 
			
		||||
 * Created by macro on 2018/8/3.
 | 
			
		||||
 */
 | 
			
		||||
public class MemberDetails implements UserDetails {
 | 
			
		||||
    private UmsMember umsMember;
 | 
			
		||||
 | 
			
		||||
    public MemberDetails(UmsMember umsMember) {
 | 
			
		||||
        this.umsMember = umsMember;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public Collection<? extends GrantedAuthority> getAuthorities() {
 | 
			
		||||
        //返回当前用户的权限
 | 
			
		||||
        return Arrays.asList(new SimpleGrantedAuthority("TEST"));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public String getPassword() {
 | 
			
		||||
        return umsMember.getPassword();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public String getUsername() {
 | 
			
		||||
        return umsMember.getUsername();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public boolean isAccountNonExpired() {
 | 
			
		||||
        return true;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public boolean isAccountNonLocked() {
 | 
			
		||||
        return true;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public boolean isCredentialsNonExpired() {
 | 
			
		||||
        return true;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public boolean isEnabled() {
 | 
			
		||||
        return umsMember.getStatus()==1;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public UmsMember getUmsMember() {
 | 
			
		||||
        return umsMember;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -0,0 +1,32 @@
 | 
			
		||||
package com.tuling.tulingmall.mapper;
 | 
			
		||||
 | 
			
		||||
import com.baomidou.dynamic.datasource.annotation.DS;
 | 
			
		||||
import com.tuling.tulingmall.model.UmsMember;
 | 
			
		||||
import com.tuling.tulingmall.model.UmsMemberExample;
 | 
			
		||||
import org.apache.ibatis.annotations.Param;
 | 
			
		||||
 | 
			
		||||
import java.util.List;
 | 
			
		||||
@DS("user")
 | 
			
		||||
public interface UmsMemberMapper {
 | 
			
		||||
    long countByExample(UmsMemberExample example);
 | 
			
		||||
 | 
			
		||||
    int deleteByExample(UmsMemberExample example);
 | 
			
		||||
 | 
			
		||||
    int deleteByPrimaryKey(Long id);
 | 
			
		||||
 | 
			
		||||
    int insert(UmsMember record);
 | 
			
		||||
 | 
			
		||||
    int insertSelective(UmsMember record);
 | 
			
		||||
 | 
			
		||||
    List<UmsMember> selectByExample(UmsMemberExample example);
 | 
			
		||||
 | 
			
		||||
    UmsMember selectByPrimaryKey(Long id);
 | 
			
		||||
 | 
			
		||||
    int updateByExampleSelective(@Param("record") UmsMember record, @Param("example") UmsMemberExample example);
 | 
			
		||||
 | 
			
		||||
    int updateByExample(@Param("record") UmsMember record, @Param("example") UmsMemberExample example);
 | 
			
		||||
 | 
			
		||||
    int updateByPrimaryKeySelective(UmsMember record);
 | 
			
		||||
 | 
			
		||||
    int updateByPrimaryKey(UmsMember record);
 | 
			
		||||
}
 | 
			
		||||
@@ -0,0 +1,247 @@
 | 
			
		||||
package com.tuling.tulingmall.model;
 | 
			
		||||
 | 
			
		||||
import io.swagger.annotations.ApiModelProperty;
 | 
			
		||||
 | 
			
		||||
import java.io.Serializable;
 | 
			
		||||
import java.util.Date;
 | 
			
		||||
 | 
			
		||||
public class UmsMember implements Serializable {
 | 
			
		||||
    private Long id;
 | 
			
		||||
 | 
			
		||||
    private Long memberLevelId;
 | 
			
		||||
 | 
			
		||||
    @ApiModelProperty(value = "用户名")
 | 
			
		||||
    private String username;
 | 
			
		||||
 | 
			
		||||
    @ApiModelProperty(value = "密码")
 | 
			
		||||
    private String password;
 | 
			
		||||
 | 
			
		||||
    @ApiModelProperty(value = "昵称")
 | 
			
		||||
    private String nickname;
 | 
			
		||||
 | 
			
		||||
    @ApiModelProperty(value = "手机号码")
 | 
			
		||||
    private String phone;
 | 
			
		||||
 | 
			
		||||
    @ApiModelProperty(value = "帐号启用状态:0->禁用;1->启用")
 | 
			
		||||
    private Integer status;
 | 
			
		||||
 | 
			
		||||
    @ApiModelProperty(value = "注册时间")
 | 
			
		||||
    private Date createTime;
 | 
			
		||||
 | 
			
		||||
    @ApiModelProperty(value = "头像")
 | 
			
		||||
    private String icon;
 | 
			
		||||
 | 
			
		||||
    @ApiModelProperty(value = "性别:0->未知;1->男;2->女")
 | 
			
		||||
    private Integer gender;
 | 
			
		||||
 | 
			
		||||
    @ApiModelProperty(value = "生日")
 | 
			
		||||
    private Date birthday;
 | 
			
		||||
 | 
			
		||||
    @ApiModelProperty(value = "所在城市")
 | 
			
		||||
    private String city;
 | 
			
		||||
 | 
			
		||||
    @ApiModelProperty(value = "职业")
 | 
			
		||||
    private String job;
 | 
			
		||||
 | 
			
		||||
    @ApiModelProperty(value = "个性签名")
 | 
			
		||||
    private String personalizedSignature;
 | 
			
		||||
 | 
			
		||||
    @ApiModelProperty(value = "用户来源")
 | 
			
		||||
    private Integer sourceType;
 | 
			
		||||
 | 
			
		||||
    @ApiModelProperty(value = "积分")
 | 
			
		||||
    private Integer integration;
 | 
			
		||||
 | 
			
		||||
    @ApiModelProperty(value = "成长值")
 | 
			
		||||
    private Integer growth;
 | 
			
		||||
 | 
			
		||||
    @ApiModelProperty(value = "剩余抽奖次数")
 | 
			
		||||
    private Integer luckeyCount;
 | 
			
		||||
 | 
			
		||||
    @ApiModelProperty(value = "历史积分数量")
 | 
			
		||||
    private Integer historyIntegration;
 | 
			
		||||
 | 
			
		||||
    private static final long serialVersionUID = 1L;
 | 
			
		||||
 | 
			
		||||
    public Long getId() {
 | 
			
		||||
        return id;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setId(Long id) {
 | 
			
		||||
        this.id = id;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public Long getMemberLevelId() {
 | 
			
		||||
        return memberLevelId;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setMemberLevelId(Long memberLevelId) {
 | 
			
		||||
        this.memberLevelId = memberLevelId;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public String getUsername() {
 | 
			
		||||
        return username;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setUsername(String username) {
 | 
			
		||||
        this.username = username;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public String getPassword() {
 | 
			
		||||
        return password;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setPassword(String password) {
 | 
			
		||||
        this.password = password;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public String getNickname() {
 | 
			
		||||
        return nickname;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setNickname(String nickname) {
 | 
			
		||||
        this.nickname = nickname;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public String getPhone() {
 | 
			
		||||
        return phone;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setPhone(String phone) {
 | 
			
		||||
        this.phone = phone;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public Integer getStatus() {
 | 
			
		||||
        return status;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setStatus(Integer status) {
 | 
			
		||||
        this.status = status;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public Date getCreateTime() {
 | 
			
		||||
        return createTime;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setCreateTime(Date createTime) {
 | 
			
		||||
        this.createTime = createTime;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public String getIcon() {
 | 
			
		||||
        return icon;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setIcon(String icon) {
 | 
			
		||||
        this.icon = icon;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public Integer getGender() {
 | 
			
		||||
        return gender;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setGender(Integer gender) {
 | 
			
		||||
        this.gender = gender;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public Date getBirthday() {
 | 
			
		||||
        return birthday;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setBirthday(Date birthday) {
 | 
			
		||||
        this.birthday = birthday;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public String getCity() {
 | 
			
		||||
        return city;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setCity(String city) {
 | 
			
		||||
        this.city = city;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public String getJob() {
 | 
			
		||||
        return job;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setJob(String job) {
 | 
			
		||||
        this.job = job;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public String getPersonalizedSignature() {
 | 
			
		||||
        return personalizedSignature;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setPersonalizedSignature(String personalizedSignature) {
 | 
			
		||||
        this.personalizedSignature = personalizedSignature;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public Integer getSourceType() {
 | 
			
		||||
        return sourceType;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setSourceType(Integer sourceType) {
 | 
			
		||||
        this.sourceType = sourceType;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public Integer getIntegration() {
 | 
			
		||||
        return integration;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setIntegration(Integer integration) {
 | 
			
		||||
        this.integration = integration;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public Integer getGrowth() {
 | 
			
		||||
        return growth;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setGrowth(Integer growth) {
 | 
			
		||||
        this.growth = growth;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public Integer getLuckeyCount() {
 | 
			
		||||
        return luckeyCount;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setLuckeyCount(Integer luckeyCount) {
 | 
			
		||||
        this.luckeyCount = luckeyCount;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public Integer getHistoryIntegration() {
 | 
			
		||||
        return historyIntegration;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setHistoryIntegration(Integer historyIntegration) {
 | 
			
		||||
        this.historyIntegration = historyIntegration;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public String toString() {
 | 
			
		||||
        StringBuilder sb = new StringBuilder();
 | 
			
		||||
        sb.append(getClass().getSimpleName());
 | 
			
		||||
        sb.append(" [");
 | 
			
		||||
        sb.append("Hash = ").append(hashCode());
 | 
			
		||||
        sb.append(", id=").append(id);
 | 
			
		||||
        sb.append(", memberLevelId=").append(memberLevelId);
 | 
			
		||||
        sb.append(", username=").append(username);
 | 
			
		||||
        sb.append(", password=").append(password);
 | 
			
		||||
        sb.append(", nickname=").append(nickname);
 | 
			
		||||
        sb.append(", phone=").append(phone);
 | 
			
		||||
        sb.append(", status=").append(status);
 | 
			
		||||
        sb.append(", createTime=").append(createTime);
 | 
			
		||||
        sb.append(", icon=").append(icon);
 | 
			
		||||
        sb.append(", gender=").append(gender);
 | 
			
		||||
        sb.append(", birthday=").append(birthday);
 | 
			
		||||
        sb.append(", city=").append(city);
 | 
			
		||||
        sb.append(", job=").append(job);
 | 
			
		||||
        sb.append(", personalizedSignature=").append(personalizedSignature);
 | 
			
		||||
        sb.append(", sourceType=").append(sourceType);
 | 
			
		||||
        sb.append(", integration=").append(integration);
 | 
			
		||||
        sb.append(", growth=").append(growth);
 | 
			
		||||
        sb.append(", luckeyCount=").append(luckeyCount);
 | 
			
		||||
        sb.append(", historyIntegration=").append(historyIntegration);
 | 
			
		||||
        sb.append(", serialVersionUID=").append(serialVersionUID);
 | 
			
		||||
        sb.append("]");
 | 
			
		||||
        return sb.toString();
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@@ -0,0 +1,79 @@
 | 
			
		||||
package com.tuling.tulingmall.service;
 | 
			
		||||
 | 
			
		||||
import com.tuling.tulingmall.mapper.UmsMemberMapper;
 | 
			
		||||
import com.tuling.tulingmall.model.UmsMember;
 | 
			
		||||
import com.tuling.tulingmall.model.UmsMemberExample;
 | 
			
		||||
import com.tuling.tulingmall.domain.MemberDetails;
 | 
			
		||||
import lombok.extern.slf4j.Slf4j;
 | 
			
		||||
import org.springframework.beans.factory.annotation.Autowired;
 | 
			
		||||
import org.springframework.security.core.userdetails.UserDetails;
 | 
			
		||||
import org.springframework.security.core.userdetails.UserDetailsService;
 | 
			
		||||
import org.springframework.security.core.userdetails.UsernameNotFoundException;
 | 
			
		||||
import org.springframework.stereotype.Component;
 | 
			
		||||
import org.springframework.util.CollectionUtils;
 | 
			
		||||
import org.springframework.util.StringUtils;
 | 
			
		||||
 | 
			
		||||
import java.util.List;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
* @vlog: 高于生活,源于生活
 | 
			
		||||
* @desc: 类的描述:认证服务器加载用户的类
 | 
			
		||||
* @author: smlz
 | 
			
		||||
* @createDate: 2020/1/21 21:29
 | 
			
		||||
* @version: 1.0
 | 
			
		||||
*/
 | 
			
		||||
@Slf4j
 | 
			
		||||
@Component
 | 
			
		||||
public class TulingUserDetailService implements UserDetailsService {
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 方法实现说明:用户登陆
 | 
			
		||||
     * @author:smlz
 | 
			
		||||
     * @param userName 用户名密码
 | 
			
		||||
     * @return: UserDetails
 | 
			
		||||
     * @exception:
 | 
			
		||||
     * @date:2020/1/21 21:30
 | 
			
		||||
     */
 | 
			
		||||
 | 
			
		||||
    @Autowired
 | 
			
		||||
    private UmsMemberMapper memberMapper;
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public UserDetails loadUserByUsername(String userName) throws UsernameNotFoundException {
 | 
			
		||||
 | 
			
		||||
        if(StringUtils.isEmpty(userName)) {
 | 
			
		||||
            log.warn("用户登陆用户名为空:{}",userName);
 | 
			
		||||
            throw new UsernameNotFoundException("用户名不能为空");
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        UmsMember umsMember = getByUsername(userName);
 | 
			
		||||
 | 
			
		||||
        if(null == umsMember) {
 | 
			
		||||
            log.warn("根据用户名没有查询到对应的用户信息:{}",userName);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        log.info("根据用户名:{}获取用户登陆信息:{}",userName,umsMember);
 | 
			
		||||
 | 
			
		||||
        MemberDetails memberDetails = new MemberDetails(umsMember);
 | 
			
		||||
 | 
			
		||||
        return memberDetails;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 方法实现说明:根据用户名获取用户信息
 | 
			
		||||
     * @author:smlz
 | 
			
		||||
     * @param username:用户名
 | 
			
		||||
     * @return: UmsMember 会员对象
 | 
			
		||||
     * @exception:
 | 
			
		||||
     * @date:2020/1/21 21:34
 | 
			
		||||
     */
 | 
			
		||||
    public UmsMember getByUsername(String username) {
 | 
			
		||||
        UmsMemberExample example = new UmsMemberExample();
 | 
			
		||||
        example.createCriteria().andUsernameEqualTo(username);
 | 
			
		||||
        List<UmsMember> memberList = memberMapper.selectByExample(example);
 | 
			
		||||
        if (!CollectionUtils.isEmpty(memberList)) {
 | 
			
		||||
            return memberList.get(0);
 | 
			
		||||
        }
 | 
			
		||||
        return null;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										16
									
								
								tulingmall-authcenter/src/main/resources/application.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								tulingmall-authcenter/src/main/resources/application.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,16 @@
 | 
			
		||||
 | 
			
		||||
mybatis:
 | 
			
		||||
  mapper-locations:
 | 
			
		||||
    - classpath:dao/*.xml
 | 
			
		||||
    - classpath*:com/**/mapper/*.xml
 | 
			
		||||
 | 
			
		||||
#tuling:
 | 
			
		||||
#    jwt:
 | 
			
		||||
#      keyPairName: jwt.jks
 | 
			
		||||
#      keyPairAlias: jwt
 | 
			
		||||
#      keyPairSecret: 123456
 | 
			
		||||
#      keyPairStoreSecret: 123456
 | 
			
		||||
server:
 | 
			
		||||
  port: 9999
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										36
									
								
								tulingmall-authcenter/src/main/resources/application.yml.bak
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								tulingmall-authcenter/src/main/resources/application.yml.bak
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,36 @@
 | 
			
		||||
 | 
			
		||||
spring:
 | 
			
		||||
  datasource:
 | 
			
		||||
    url: jdbc:mysql://localhost:3306/micromall?serverTimezone=UTC&useSSL=false&useUnicode=true&characterEncoding=UTF-8
 | 
			
		||||
    username: root
 | 
			
		||||
    password: Zw726515
 | 
			
		||||
    druid:
 | 
			
		||||
      initial-size: 5 #连接池初始化大小
 | 
			
		||||
      min-idle: 10 #最小空闲连接数
 | 
			
		||||
      max-active: 20 #最大连接数
 | 
			
		||||
      web-stat-filter:
 | 
			
		||||
        exclusions: "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*" #不统计这些请求数据
 | 
			
		||||
      stat-view-servlet: #访问监控网页的登录用户名和密码
 | 
			
		||||
        login-username: druid
 | 
			
		||||
        login-password: druid
 | 
			
		||||
  application:
 | 
			
		||||
    name: tulingmall-authcenter
 | 
			
		||||
  cloud:
 | 
			
		||||
    nacos:
 | 
			
		||||
      discovery:
 | 
			
		||||
        server-addr: localhost:8848
 | 
			
		||||
mybatis:
 | 
			
		||||
  mapper-locations:
 | 
			
		||||
    - classpath:dao/*.xml
 | 
			
		||||
    - classpath*:com/**/mapper/*.xml
 | 
			
		||||
 | 
			
		||||
tuling:
 | 
			
		||||
    jwt:
 | 
			
		||||
      keyPairName: jwt.jks
 | 
			
		||||
      keyPairAlias: jwt
 | 
			
		||||
      keyPairSecret: 123456
 | 
			
		||||
      keyPairStoreSecret: 123456
 | 
			
		||||
server:
 | 
			
		||||
  port: 9999
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										25
									
								
								tulingmall-authcenter/src/main/resources/bootstrap.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								tulingmall-authcenter/src/main/resources/bootstrap.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,25 @@
 | 
			
		||||
spring:
 | 
			
		||||
  application:
 | 
			
		||||
    name: tulingmall-authcenter
 | 
			
		||||
  profiles:
 | 
			
		||||
    active: dev
 | 
			
		||||
  cloud:
 | 
			
		||||
    nacos:
 | 
			
		||||
      config:
 | 
			
		||||
        server-addr: 127.0.0.1:8848 #配置中心的地址
 | 
			
		||||
        file-extension: yml #配置文件结尾的配置
 | 
			
		||||
        shared-configs[0]:
 | 
			
		||||
          data-id: tulingmall-nacos.yml
 | 
			
		||||
          group: DEFAULT_GROUP
 | 
			
		||||
          refresh: true
 | 
			
		||||
        shared-configs[1]:
 | 
			
		||||
          data-id: tulingmall-db-common.yml
 | 
			
		||||
          group: DEFAULT_GROUP
 | 
			
		||||
          refresh: true
 | 
			
		||||
logging:
 | 
			
		||||
  level:
 | 
			
		||||
    com:
 | 
			
		||||
     alibaba:
 | 
			
		||||
      cloud:
 | 
			
		||||
        nacos:
 | 
			
		||||
          client: warn
 | 
			
		||||
@@ -0,0 +1,431 @@
 | 
			
		||||
<?xml version="1.0" encoding="UTF-8"?>
 | 
			
		||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 | 
			
		||||
<mapper namespace="com.tuling.tulingmall.mapper.UmsMemberMapper">
 | 
			
		||||
  <resultMap id="BaseResultMap" type="com.tuling.tulingmall.model.UmsMember">
 | 
			
		||||
    <id column="id" jdbcType="BIGINT" property="id" />
 | 
			
		||||
    <result column="member_level_id" jdbcType="BIGINT" property="memberLevelId" />
 | 
			
		||||
    <result column="username" jdbcType="VARCHAR" property="username" />
 | 
			
		||||
    <result column="password" jdbcType="VARCHAR" property="password" />
 | 
			
		||||
    <result column="nickname" jdbcType="VARCHAR" property="nickname" />
 | 
			
		||||
    <result column="phone" jdbcType="VARCHAR" property="phone" />
 | 
			
		||||
    <result column="status" jdbcType="INTEGER" property="status" />
 | 
			
		||||
    <result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
 | 
			
		||||
    <result column="icon" jdbcType="VARCHAR" property="icon" />
 | 
			
		||||
    <result column="gender" jdbcType="INTEGER" property="gender" />
 | 
			
		||||
    <result column="birthday" jdbcType="DATE" property="birthday" />
 | 
			
		||||
    <result column="city" jdbcType="VARCHAR" property="city" />
 | 
			
		||||
    <result column="job" jdbcType="VARCHAR" property="job" />
 | 
			
		||||
    <result column="personalized_signature" jdbcType="VARCHAR" property="personalizedSignature" />
 | 
			
		||||
    <result column="source_type" jdbcType="INTEGER" property="sourceType" />
 | 
			
		||||
    <result column="integration" jdbcType="INTEGER" property="integration" />
 | 
			
		||||
    <result column="growth" jdbcType="INTEGER" property="growth" />
 | 
			
		||||
    <result column="luckey_count" jdbcType="INTEGER" property="luckeyCount" />
 | 
			
		||||
    <result column="history_integration" jdbcType="INTEGER" property="historyIntegration" />
 | 
			
		||||
  </resultMap>
 | 
			
		||||
  <sql id="Example_Where_Clause">
 | 
			
		||||
    <where>
 | 
			
		||||
      <foreach collection="oredCriteria" item="criteria" separator="or">
 | 
			
		||||
        <if test="criteria.valid">
 | 
			
		||||
          <trim prefix="(" prefixOverrides="and" suffix=")">
 | 
			
		||||
            <foreach collection="criteria.criteria" item="criterion">
 | 
			
		||||
              <choose>
 | 
			
		||||
                <when test="criterion.noValue">
 | 
			
		||||
                  and ${criterion.condition}
 | 
			
		||||
                </when>
 | 
			
		||||
                <when test="criterion.singleValue">
 | 
			
		||||
                  and ${criterion.condition} #{criterion.value}
 | 
			
		||||
                </when>
 | 
			
		||||
                <when test="criterion.betweenValue">
 | 
			
		||||
                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
 | 
			
		||||
                </when>
 | 
			
		||||
                <when test="criterion.listValue">
 | 
			
		||||
                  and ${criterion.condition}
 | 
			
		||||
                  <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
 | 
			
		||||
                    #{listItem}
 | 
			
		||||
                  </foreach>
 | 
			
		||||
                </when>
 | 
			
		||||
              </choose>
 | 
			
		||||
            </foreach>
 | 
			
		||||
          </trim>
 | 
			
		||||
        </if>
 | 
			
		||||
      </foreach>
 | 
			
		||||
    </where>
 | 
			
		||||
  </sql>
 | 
			
		||||
  <sql id="Update_By_Example_Where_Clause">
 | 
			
		||||
    <where>
 | 
			
		||||
      <foreach collection="example.oredCriteria" item="criteria" separator="or">
 | 
			
		||||
        <if test="criteria.valid">
 | 
			
		||||
          <trim prefix="(" prefixOverrides="and" suffix=")">
 | 
			
		||||
            <foreach collection="criteria.criteria" item="criterion">
 | 
			
		||||
              <choose>
 | 
			
		||||
                <when test="criterion.noValue">
 | 
			
		||||
                  and ${criterion.condition}
 | 
			
		||||
                </when>
 | 
			
		||||
                <when test="criterion.singleValue">
 | 
			
		||||
                  and ${criterion.condition} #{criterion.value}
 | 
			
		||||
                </when>
 | 
			
		||||
                <when test="criterion.betweenValue">
 | 
			
		||||
                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
 | 
			
		||||
                </when>
 | 
			
		||||
                <when test="criterion.listValue">
 | 
			
		||||
                  and ${criterion.condition}
 | 
			
		||||
                  <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
 | 
			
		||||
                    #{listItem}
 | 
			
		||||
                  </foreach>
 | 
			
		||||
                </when>
 | 
			
		||||
              </choose>
 | 
			
		||||
            </foreach>
 | 
			
		||||
          </trim>
 | 
			
		||||
        </if>
 | 
			
		||||
      </foreach>
 | 
			
		||||
    </where>
 | 
			
		||||
  </sql>
 | 
			
		||||
  <sql id="Base_Column_List">
 | 
			
		||||
    id, member_level_id, username, password, nickname, phone, status, create_time, icon, 
 | 
			
		||||
    gender, birthday, city, job, personalized_signature, source_type, integration, growth, 
 | 
			
		||||
    luckey_count, history_integration
 | 
			
		||||
  </sql>
 | 
			
		||||
  <select id="selectByExample" parameterType="com.tuling.tulingmall.model.UmsMemberExample" resultMap="BaseResultMap">
 | 
			
		||||
    select
 | 
			
		||||
    <if test="distinct">
 | 
			
		||||
      distinct
 | 
			
		||||
    </if>
 | 
			
		||||
    <include refid="Base_Column_List" />
 | 
			
		||||
    from ums_member
 | 
			
		||||
    <if test="_parameter != null">
 | 
			
		||||
      <include refid="Example_Where_Clause" />
 | 
			
		||||
    </if>
 | 
			
		||||
    <if test="orderByClause != null">
 | 
			
		||||
      order by ${orderByClause}
 | 
			
		||||
    </if>
 | 
			
		||||
  </select>
 | 
			
		||||
  <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
 | 
			
		||||
    select 
 | 
			
		||||
    <include refid="Base_Column_List" />
 | 
			
		||||
    from ums_member
 | 
			
		||||
    where id = #{id,jdbcType=BIGINT}
 | 
			
		||||
  </select>
 | 
			
		||||
  <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
 | 
			
		||||
    delete from ums_member
 | 
			
		||||
    where id = #{id,jdbcType=BIGINT}
 | 
			
		||||
  </delete>
 | 
			
		||||
  <delete id="deleteByExample" parameterType="com.tuling.tulingmall.model.UmsMemberExample">
 | 
			
		||||
    delete from ums_member
 | 
			
		||||
    <if test="_parameter != null">
 | 
			
		||||
      <include refid="Example_Where_Clause" />
 | 
			
		||||
    </if>
 | 
			
		||||
  </delete>
 | 
			
		||||
  <insert id="insert" parameterType="com.tuling.tulingmall.model.UmsMember">
 | 
			
		||||
    <selectKey keyProperty="id" order="AFTER" resultType="java.lang.Long">
 | 
			
		||||
      SELECT LAST_INSERT_ID()
 | 
			
		||||
    </selectKey>
 | 
			
		||||
    insert into ums_member (member_level_id, username, password, 
 | 
			
		||||
      nickname, phone, status, 
 | 
			
		||||
      create_time, icon, gender, 
 | 
			
		||||
      birthday, city, job, personalized_signature, 
 | 
			
		||||
      source_type, integration, growth, 
 | 
			
		||||
      luckey_count, history_integration)
 | 
			
		||||
    values (#{memberLevelId,jdbcType=BIGINT}, #{username,jdbcType=VARCHAR}, #{password,jdbcType=VARCHAR}, 
 | 
			
		||||
      #{nickname,jdbcType=VARCHAR}, #{phone,jdbcType=VARCHAR}, #{status,jdbcType=INTEGER}, 
 | 
			
		||||
      #{createTime,jdbcType=TIMESTAMP}, #{icon,jdbcType=VARCHAR}, #{gender,jdbcType=INTEGER}, 
 | 
			
		||||
      #{birthday,jdbcType=DATE}, #{city,jdbcType=VARCHAR}, #{job,jdbcType=VARCHAR}, #{personalizedSignature,jdbcType=VARCHAR}, 
 | 
			
		||||
      #{sourceType,jdbcType=INTEGER}, #{integration,jdbcType=INTEGER}, #{growth,jdbcType=INTEGER}, 
 | 
			
		||||
      #{luckeyCount,jdbcType=INTEGER}, #{historyIntegration,jdbcType=INTEGER})
 | 
			
		||||
  </insert>
 | 
			
		||||
  <insert id="insertSelective" parameterType="com.tuling.tulingmall.model.UmsMember">
 | 
			
		||||
    <selectKey keyProperty="id" order="AFTER" resultType="java.lang.Long">
 | 
			
		||||
      SELECT LAST_INSERT_ID()
 | 
			
		||||
    </selectKey>
 | 
			
		||||
    insert into ums_member
 | 
			
		||||
    <trim prefix="(" suffix=")" suffixOverrides=",">
 | 
			
		||||
      <if test="memberLevelId != null">
 | 
			
		||||
        member_level_id,
 | 
			
		||||
      </if>
 | 
			
		||||
      <if test="username != null">
 | 
			
		||||
        username,
 | 
			
		||||
      </if>
 | 
			
		||||
      <if test="password != null">
 | 
			
		||||
        password,
 | 
			
		||||
      </if>
 | 
			
		||||
      <if test="nickname != null">
 | 
			
		||||
        nickname,
 | 
			
		||||
      </if>
 | 
			
		||||
      <if test="phone != null">
 | 
			
		||||
        phone,
 | 
			
		||||
      </if>
 | 
			
		||||
      <if test="status != null">
 | 
			
		||||
        status,
 | 
			
		||||
      </if>
 | 
			
		||||
      <if test="createTime != null">
 | 
			
		||||
        create_time,
 | 
			
		||||
      </if>
 | 
			
		||||
      <if test="icon != null">
 | 
			
		||||
        icon,
 | 
			
		||||
      </if>
 | 
			
		||||
      <if test="gender != null">
 | 
			
		||||
        gender,
 | 
			
		||||
      </if>
 | 
			
		||||
      <if test="birthday != null">
 | 
			
		||||
        birthday,
 | 
			
		||||
      </if>
 | 
			
		||||
      <if test="city != null">
 | 
			
		||||
        city,
 | 
			
		||||
      </if>
 | 
			
		||||
      <if test="job != null">
 | 
			
		||||
        job,
 | 
			
		||||
      </if>
 | 
			
		||||
      <if test="personalizedSignature != null">
 | 
			
		||||
        personalized_signature,
 | 
			
		||||
      </if>
 | 
			
		||||
      <if test="sourceType != null">
 | 
			
		||||
        source_type,
 | 
			
		||||
      </if>
 | 
			
		||||
      <if test="integration != null">
 | 
			
		||||
        integration,
 | 
			
		||||
      </if>
 | 
			
		||||
      <if test="growth != null">
 | 
			
		||||
        growth,
 | 
			
		||||
      </if>
 | 
			
		||||
      <if test="luckeyCount != null">
 | 
			
		||||
        luckey_count,
 | 
			
		||||
      </if>
 | 
			
		||||
      <if test="historyIntegration != null">
 | 
			
		||||
        history_integration,
 | 
			
		||||
      </if>
 | 
			
		||||
    </trim>
 | 
			
		||||
    <trim prefix="values (" suffix=")" suffixOverrides=",">
 | 
			
		||||
      <if test="memberLevelId != null">
 | 
			
		||||
        #{memberLevelId,jdbcType=BIGINT},
 | 
			
		||||
      </if>
 | 
			
		||||
      <if test="username != null">
 | 
			
		||||
        #{username,jdbcType=VARCHAR},
 | 
			
		||||
      </if>
 | 
			
		||||
      <if test="password != null">
 | 
			
		||||
        #{password,jdbcType=VARCHAR},
 | 
			
		||||
      </if>
 | 
			
		||||
      <if test="nickname != null">
 | 
			
		||||
        #{nickname,jdbcType=VARCHAR},
 | 
			
		||||
      </if>
 | 
			
		||||
      <if test="phone != null">
 | 
			
		||||
        #{phone,jdbcType=VARCHAR},
 | 
			
		||||
      </if>
 | 
			
		||||
      <if test="status != null">
 | 
			
		||||
        #{status,jdbcType=INTEGER},
 | 
			
		||||
      </if>
 | 
			
		||||
      <if test="createTime != null">
 | 
			
		||||
        #{createTime,jdbcType=TIMESTAMP},
 | 
			
		||||
      </if>
 | 
			
		||||
      <if test="icon != null">
 | 
			
		||||
        #{icon,jdbcType=VARCHAR},
 | 
			
		||||
      </if>
 | 
			
		||||
      <if test="gender != null">
 | 
			
		||||
        #{gender,jdbcType=INTEGER},
 | 
			
		||||
      </if>
 | 
			
		||||
      <if test="birthday != null">
 | 
			
		||||
        #{birthday,jdbcType=DATE},
 | 
			
		||||
      </if>
 | 
			
		||||
      <if test="city != null">
 | 
			
		||||
        #{city,jdbcType=VARCHAR},
 | 
			
		||||
      </if>
 | 
			
		||||
      <if test="job != null">
 | 
			
		||||
        #{job,jdbcType=VARCHAR},
 | 
			
		||||
      </if>
 | 
			
		||||
      <if test="personalizedSignature != null">
 | 
			
		||||
        #{personalizedSignature,jdbcType=VARCHAR},
 | 
			
		||||
      </if>
 | 
			
		||||
      <if test="sourceType != null">
 | 
			
		||||
        #{sourceType,jdbcType=INTEGER},
 | 
			
		||||
      </if>
 | 
			
		||||
      <if test="integration != null">
 | 
			
		||||
        #{integration,jdbcType=INTEGER},
 | 
			
		||||
      </if>
 | 
			
		||||
      <if test="growth != null">
 | 
			
		||||
        #{growth,jdbcType=INTEGER},
 | 
			
		||||
      </if>
 | 
			
		||||
      <if test="luckeyCount != null">
 | 
			
		||||
        #{luckeyCount,jdbcType=INTEGER},
 | 
			
		||||
      </if>
 | 
			
		||||
      <if test="historyIntegration != null">
 | 
			
		||||
        #{historyIntegration,jdbcType=INTEGER},
 | 
			
		||||
      </if>
 | 
			
		||||
    </trim>
 | 
			
		||||
  </insert>
 | 
			
		||||
  <select id="countByExample" parameterType="com.tuling.tulingmall.model.UmsMemberExample" resultType="java.lang.Long">
 | 
			
		||||
    select count(*) from ums_member
 | 
			
		||||
    <if test="_parameter != null">
 | 
			
		||||
      <include refid="Example_Where_Clause" />
 | 
			
		||||
    </if>
 | 
			
		||||
  </select>
 | 
			
		||||
  <update id="updateByExampleSelective" parameterType="map">
 | 
			
		||||
    update ums_member
 | 
			
		||||
    <set>
 | 
			
		||||
      <if test="record.id != null">
 | 
			
		||||
        id = #{record.id,jdbcType=BIGINT},
 | 
			
		||||
      </if>
 | 
			
		||||
      <if test="record.memberLevelId != null">
 | 
			
		||||
        member_level_id = #{record.memberLevelId,jdbcType=BIGINT},
 | 
			
		||||
      </if>
 | 
			
		||||
      <if test="record.username != null">
 | 
			
		||||
        username = #{record.username,jdbcType=VARCHAR},
 | 
			
		||||
      </if>
 | 
			
		||||
      <if test="record.password != null">
 | 
			
		||||
        password = #{record.password,jdbcType=VARCHAR},
 | 
			
		||||
      </if>
 | 
			
		||||
      <if test="record.nickname != null">
 | 
			
		||||
        nickname = #{record.nickname,jdbcType=VARCHAR},
 | 
			
		||||
      </if>
 | 
			
		||||
      <if test="record.phone != null">
 | 
			
		||||
        phone = #{record.phone,jdbcType=VARCHAR},
 | 
			
		||||
      </if>
 | 
			
		||||
      <if test="record.status != null">
 | 
			
		||||
        status = #{record.status,jdbcType=INTEGER},
 | 
			
		||||
      </if>
 | 
			
		||||
      <if test="record.createTime != null">
 | 
			
		||||
        create_time = #{record.createTime,jdbcType=TIMESTAMP},
 | 
			
		||||
      </if>
 | 
			
		||||
      <if test="record.icon != null">
 | 
			
		||||
        icon = #{record.icon,jdbcType=VARCHAR},
 | 
			
		||||
      </if>
 | 
			
		||||
      <if test="record.gender != null">
 | 
			
		||||
        gender = #{record.gender,jdbcType=INTEGER},
 | 
			
		||||
      </if>
 | 
			
		||||
      <if test="record.birthday != null">
 | 
			
		||||
        birthday = #{record.birthday,jdbcType=DATE},
 | 
			
		||||
      </if>
 | 
			
		||||
      <if test="record.city != null">
 | 
			
		||||
        city = #{record.city,jdbcType=VARCHAR},
 | 
			
		||||
      </if>
 | 
			
		||||
      <if test="record.job != null">
 | 
			
		||||
        job = #{record.job,jdbcType=VARCHAR},
 | 
			
		||||
      </if>
 | 
			
		||||
      <if test="record.personalizedSignature != null">
 | 
			
		||||
        personalized_signature = #{record.personalizedSignature,jdbcType=VARCHAR},
 | 
			
		||||
      </if>
 | 
			
		||||
      <if test="record.sourceType != null">
 | 
			
		||||
        source_type = #{record.sourceType,jdbcType=INTEGER},
 | 
			
		||||
      </if>
 | 
			
		||||
      <if test="record.integration != null">
 | 
			
		||||
        integration = #{record.integration,jdbcType=INTEGER},
 | 
			
		||||
      </if>
 | 
			
		||||
      <if test="record.growth != null">
 | 
			
		||||
        growth = #{record.growth,jdbcType=INTEGER},
 | 
			
		||||
      </if>
 | 
			
		||||
      <if test="record.luckeyCount != null">
 | 
			
		||||
        luckey_count = #{record.luckeyCount,jdbcType=INTEGER},
 | 
			
		||||
      </if>
 | 
			
		||||
      <if test="record.historyIntegration != null">
 | 
			
		||||
        history_integration = #{record.historyIntegration,jdbcType=INTEGER},
 | 
			
		||||
      </if>
 | 
			
		||||
    </set>
 | 
			
		||||
    <if test="_parameter != null">
 | 
			
		||||
      <include refid="Update_By_Example_Where_Clause" />
 | 
			
		||||
    </if>
 | 
			
		||||
  </update>
 | 
			
		||||
  <update id="updateByExample" parameterType="map">
 | 
			
		||||
    update ums_member
 | 
			
		||||
    set id = #{record.id,jdbcType=BIGINT},
 | 
			
		||||
      member_level_id = #{record.memberLevelId,jdbcType=BIGINT},
 | 
			
		||||
      username = #{record.username,jdbcType=VARCHAR},
 | 
			
		||||
      password = #{record.password,jdbcType=VARCHAR},
 | 
			
		||||
      nickname = #{record.nickname,jdbcType=VARCHAR},
 | 
			
		||||
      phone = #{record.phone,jdbcType=VARCHAR},
 | 
			
		||||
      status = #{record.status,jdbcType=INTEGER},
 | 
			
		||||
      create_time = #{record.createTime,jdbcType=TIMESTAMP},
 | 
			
		||||
      icon = #{record.icon,jdbcType=VARCHAR},
 | 
			
		||||
      gender = #{record.gender,jdbcType=INTEGER},
 | 
			
		||||
      birthday = #{record.birthday,jdbcType=DATE},
 | 
			
		||||
      city = #{record.city,jdbcType=VARCHAR},
 | 
			
		||||
      job = #{record.job,jdbcType=VARCHAR},
 | 
			
		||||
      personalized_signature = #{record.personalizedSignature,jdbcType=VARCHAR},
 | 
			
		||||
      source_type = #{record.sourceType,jdbcType=INTEGER},
 | 
			
		||||
      integration = #{record.integration,jdbcType=INTEGER},
 | 
			
		||||
      growth = #{record.growth,jdbcType=INTEGER},
 | 
			
		||||
      luckey_count = #{record.luckeyCount,jdbcType=INTEGER},
 | 
			
		||||
      history_integration = #{record.historyIntegration,jdbcType=INTEGER}
 | 
			
		||||
    <if test="_parameter != null">
 | 
			
		||||
      <include refid="Update_By_Example_Where_Clause" />
 | 
			
		||||
    </if>
 | 
			
		||||
  </update>
 | 
			
		||||
  <update id="updateByPrimaryKeySelective" parameterType="com.tuling.tulingmall.model.UmsMember">
 | 
			
		||||
    update ums_member
 | 
			
		||||
    <set>
 | 
			
		||||
      <if test="memberLevelId != null">
 | 
			
		||||
        member_level_id = #{memberLevelId,jdbcType=BIGINT},
 | 
			
		||||
      </if>
 | 
			
		||||
      <if test="username != null">
 | 
			
		||||
        username = #{username,jdbcType=VARCHAR},
 | 
			
		||||
      </if>
 | 
			
		||||
      <if test="password != null">
 | 
			
		||||
        password = #{password,jdbcType=VARCHAR},
 | 
			
		||||
      </if>
 | 
			
		||||
      <if test="nickname != null">
 | 
			
		||||
        nickname = #{nickname,jdbcType=VARCHAR},
 | 
			
		||||
      </if>
 | 
			
		||||
      <if test="phone != null">
 | 
			
		||||
        phone = #{phone,jdbcType=VARCHAR},
 | 
			
		||||
      </if>
 | 
			
		||||
      <if test="status != null">
 | 
			
		||||
        status = #{status,jdbcType=INTEGER},
 | 
			
		||||
      </if>
 | 
			
		||||
      <if test="createTime != null">
 | 
			
		||||
        create_time = #{createTime,jdbcType=TIMESTAMP},
 | 
			
		||||
      </if>
 | 
			
		||||
      <if test="icon != null">
 | 
			
		||||
        icon = #{icon,jdbcType=VARCHAR},
 | 
			
		||||
      </if>
 | 
			
		||||
      <if test="gender != null">
 | 
			
		||||
        gender = #{gender,jdbcType=INTEGER},
 | 
			
		||||
      </if>
 | 
			
		||||
      <if test="birthday != null">
 | 
			
		||||
        birthday = #{birthday,jdbcType=DATE},
 | 
			
		||||
      </if>
 | 
			
		||||
      <if test="city != null">
 | 
			
		||||
        city = #{city,jdbcType=VARCHAR},
 | 
			
		||||
      </if>
 | 
			
		||||
      <if test="job != null">
 | 
			
		||||
        job = #{job,jdbcType=VARCHAR},
 | 
			
		||||
      </if>
 | 
			
		||||
      <if test="personalizedSignature != null">
 | 
			
		||||
        personalized_signature = #{personalizedSignature,jdbcType=VARCHAR},
 | 
			
		||||
      </if>
 | 
			
		||||
      <if test="sourceType != null">
 | 
			
		||||
        source_type = #{sourceType,jdbcType=INTEGER},
 | 
			
		||||
      </if>
 | 
			
		||||
      <if test="integration != null">
 | 
			
		||||
        integration = #{integration,jdbcType=INTEGER},
 | 
			
		||||
      </if>
 | 
			
		||||
      <if test="growth != null">
 | 
			
		||||
        growth = #{growth,jdbcType=INTEGER},
 | 
			
		||||
      </if>
 | 
			
		||||
      <if test="luckeyCount != null">
 | 
			
		||||
        luckey_count = #{luckeyCount,jdbcType=INTEGER},
 | 
			
		||||
      </if>
 | 
			
		||||
      <if test="historyIntegration != null">
 | 
			
		||||
        history_integration = #{historyIntegration,jdbcType=INTEGER},
 | 
			
		||||
      </if>
 | 
			
		||||
    </set>
 | 
			
		||||
    where id = #{id,jdbcType=BIGINT}
 | 
			
		||||
  </update>
 | 
			
		||||
  <update id="updateByPrimaryKey" parameterType="com.tuling.tulingmall.model.UmsMember">
 | 
			
		||||
    update ums_member
 | 
			
		||||
    set member_level_id = #{memberLevelId,jdbcType=BIGINT},
 | 
			
		||||
      username = #{username,jdbcType=VARCHAR},
 | 
			
		||||
      password = #{password,jdbcType=VARCHAR},
 | 
			
		||||
      nickname = #{nickname,jdbcType=VARCHAR},
 | 
			
		||||
      phone = #{phone,jdbcType=VARCHAR},
 | 
			
		||||
      status = #{status,jdbcType=INTEGER},
 | 
			
		||||
      create_time = #{createTime,jdbcType=TIMESTAMP},
 | 
			
		||||
      icon = #{icon,jdbcType=VARCHAR},
 | 
			
		||||
      gender = #{gender,jdbcType=INTEGER},
 | 
			
		||||
      birthday = #{birthday,jdbcType=DATE},
 | 
			
		||||
      city = #{city,jdbcType=VARCHAR},
 | 
			
		||||
      job = #{job,jdbcType=VARCHAR},
 | 
			
		||||
      personalized_signature = #{personalizedSignature,jdbcType=VARCHAR},
 | 
			
		||||
      source_type = #{sourceType,jdbcType=INTEGER},
 | 
			
		||||
      integration = #{integration,jdbcType=INTEGER},
 | 
			
		||||
      growth = #{growth,jdbcType=INTEGER},
 | 
			
		||||
      luckey_count = #{luckeyCount,jdbcType=INTEGER},
 | 
			
		||||
      history_integration = #{historyIntegration,jdbcType=INTEGER}
 | 
			
		||||
    where id = #{id,jdbcType=BIGINT}
 | 
			
		||||
  </update>
 | 
			
		||||
</mapper>
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								tulingmall-authcenter/src/main/resources/jwt.jks
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								tulingmall-authcenter/src/main/resources/jwt.jks
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										16
									
								
								tulingmall-authcenter/src/main/resources/rebel.xml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								tulingmall-authcenter/src/main/resources/rebel.xml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,16 @@
 | 
			
		||||
<?xml version="1.0" encoding="UTF-8"?>
 | 
			
		||||
 | 
			
		||||
<!--
 | 
			
		||||
  This is the JRebel configuration file. It maps the running application to your IDE workspace, enabling JRebel reloading for this project.
 | 
			
		||||
  Refer to https://manuals.jrebel.com/jrebel/standalone/config.html for more information.
 | 
			
		||||
-->
 | 
			
		||||
<application generated-by="intellij" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.zeroturnaround.com" xsi:schemaLocation="http://www.zeroturnaround.com http://update.zeroturnaround.com/jrebel/rebel-2_3.xsd">
 | 
			
		||||
 | 
			
		||||
	<id>tulingmall-authcenter</id>
 | 
			
		||||
 | 
			
		||||
	<classpath>
 | 
			
		||||
		<dir name="D:/GitSource/tmallV5/tulingmall-authcenter/target/classes">
 | 
			
		||||
		</dir>
 | 
			
		||||
	</classpath>
 | 
			
		||||
 | 
			
		||||
</application>
 | 
			
		||||
		Reference in New Issue
	
	Block a user