Skip to content

完成邮箱验证码和图片验证码 #1

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 27 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
e11c49e
first commit
isomd Dec 2, 2023
6b5ba91
init
isomd Dec 4, 2023
5b1014a
完成邮箱验证码和图片验证码
isomd Dec 5, 2023
7c4e539
隐私信息加密
isomd Dec 5, 2023
724ecaf
Merge remote-tracking branch 'upstream/main'
isomd Dec 6, 2023
0071766
PR
isomd Dec 6, 2023
91238ea
[Test: 验证码服务] 验证码服务上线 <Auto> -e:test -m:rvc-captcha -v:1.0 -rp:8080 …
isomd Dec 6, 2023
678efad
[Test: 验证码服务] 验证码服务上线 <Auto> -e:test -m:rvc-captcha -v:1.0 -rp:8080 …
isomd Dec 6, 2023
11d8c3b
[Test: 验证码服务] 验证码服务上线 <Auto> -e:test -m:rvc-captcha -v:1.0 -rp:8080 …
isomd Dec 7, 2023
6afb4c2
[Test: 验证码服务] 验证码服务上线 <Auto> -e:test -m:rvc-captcha -v:1.0 -rp:8080 …
isomd Dec 7, 2023
c493625
[Test: 验证码服务] 验证码服务上线 <Auto> -e:test -m:rvc-captcha -v:1.0 -rp:8080 …
isomd Dec 7, 2023
029af0c
[Test: 验证码服务] 验证码服务上线 <Auto> -e:test -m:rvc-captcha -v:1.0 -rp:8080 …
isomd Dec 7, 2023
bf5130d
[Bug修复:验证码不随机]<Auto> -e:test -type:single -m:rvc-captcha -v:1.0.1 -rp…
isomd Dec 13, 2023
7f69d99
[Bug修复:验证码不随机]<Auto> -e:test -type:single -m:rvc-captcha -v:1.0.2 -rp…
isomd Dec 14, 2023
07dfa06
[Bug修复:验证码不随机]<Auto> -e:test -type:single -m:rvc-captcha -v:1.0.2 -rp…
isomd Dec 14, 2023
f3055f4
[Bug修复:验证码服务] <Auto> -e:test -type:single -m:rvc-captcha -v:1.0.2 -r…
isomd Dec 15, 2023
dddff7e
[Dev:验证码服务]<Auto> -e:prod -type:single -m:rvc-captcha -v:1.0.3 -rp:80…
isomd Dec 20, 2023
d7ed70f
[prod:验证码服务] "验证码服务上线正式服务器" <Auto> -e:prod -type:single -m:rvc-captch…
isomd Dec 22, 2023
a839542
[test:验证码服务] "验证码服务上线测试服务器" <Auto> -e:test -type:single -m:rvc-captch…
isomd Dec 22, 2023
f9713c9
[Test:验证码服务]<Auto> -e:test -type:single -m:rvc-captcha -v:1.0.3 -rp:8…
isomd Mar 9, 2024
e639b5e
[Test:验证码服务]<Auto> -e:test -type:single -m:rvc-captcha -v:1.0.3 -rp:8…
isomd Mar 9, 2024
3aa4041
[Test:验证码服务]<Auto> -e:test -type:single -m:rvc-captcha -v:1.0.3 -rp:8…
isomd Jun 27, 2024
ab0b11c
[Test:验证码服务]<Auto> -e:test -type:single -m:rvc-captcha -v:1.0.3 -rp:8…
isomd Jun 27, 2024
c5b5057
[Test:验证码服务]<Auto> -e:test -type:single -m:rvc-captcha -v:1.0.3 -rp:9…
isomd Jun 27, 2024
1e541da
[Test:验证码服务]<Auto> -e:test -type:single -m:rvc-captcha -v:1.0.3 -rp:9…
isomd Jul 4, 2024
9ee79f7
[Test:验证码服务]<Auto> -e:test -type:single -m:rvc-captcha -v:1.0.3 -rp:9…
isomd Jul 4, 2024
34ae77b
[Test:验证码服务]<Auto> -e:test -type:single -m:tml-captcha -v:1.0.3 -rp:9…
isomd Jul 12, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
174 changes: 174 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,174 @@
name: Genius 多模块项目部署 [CI|CD]流

on:
push:
branches:
- main

jobs:
build:
runs-on: ubuntu-latest

steps:
- name: Checkout
uses: actions/checkout@v2


- name: Checkout Auto Label
run: |
if [[ "${{ github.event.head_commit.message }}" == *"<Auto>"* ]]; then
echo "Commit message contains <Auto>. Proceeding with the workflow."
else
echo "Commit message does not contain <Auto>. Skipping the workflow."
exit 78
fi

- name: Get Commit Info
id: extract
run: |
commit_message="${{ github.event.head_commit.message }}"
echo "Commit Message: $commit_message"


env=""
module=""
module_type=""
version=""
skip=""
docker_env=""
run_port=""

if [[ "$commit_message" =~ -e:([^\ ]*) ]]; then
env="${BASH_REMATCH[1]}"
fi

if [[ "$commit_message" =~ -type:([^\ ]*) ]]; then
module_type="${BASH_REMATCH[1]}"
fi

if [[ "$commit_message" =~ -m:([^\ ]*) ]]; then
module="${BASH_REMATCH[1]}"
fi

if [[ "$commit_message" =~ -v:([^\ ]*) ]]; then
version="${BASH_REMATCH[1]}"
fi

if [[ "$commit_message" =~ -skip:([^\ ]*) ]]; then
skip="${BASH_REMATCH[1]}"
fi

if [[ "$commit_message" =~ -rp:([^\ ]*) ]]; then
run_port="${BASH_REMATCH[1]}"
fi


if [[ "$commit_message" =~ -de:\<([^>]+)\> ]]; then

docker_env="${BASH_REMATCH[1]}"
fi

echo "Environment: $env"
echo "Module: $module"
echo "Module_Type: $module_type"
echo "Version: $version"
echo "Skip: $skip"
echo "Run_Port: $run_port"
echo "Docker_Env: $docker_env"

echo "ENV=$env" >> $GITHUB_ENV
echo "MODULE=$module" >> $GITHUB_ENV
echo "MODULE_TYPE=$module_type" >> $GITHUB_ENV
echo "VERSION=$version" >> $GITHUB_ENV
echo "SKIP=$skip" >> $GITHUB_ENV
echo "RUN_PORT=$run_port" >> $GITHUB_ENV
echo "DOCKER_ENV=$docker_env" >> $GITHUB_ENV

- name: Set up JDK 11
uses: actions/setup-java@v3
with:
java-version: '11'
distribution: 'temurin'
cache: maven

- name: Build with Maven
if: ${{ env.SKIP != 'image'}}
env:
JASYPT_ALGO: ${{ secrets.JASYPT_ALGO }}
JASYPT_PWD: ${{ secrets.JASYPT_PWD }}
run: |
if [ "${{ env.MODULE_TYPE }}" != "single" ]; then
cd $MODULE
fi
echo "jasypt:" > src/main/resources/you-cant-see-that.yml
echo " encryptor:" >> src/main/resources/you-cant-see-that.yml
echo " algorithm: $JASYPT_ALGO" >> src/main/resources/you-cant-see-that.yml
echo " password: $JASYPT_PWD" >> src/main/resources/you-cant-see-that.yml
if [ "${{ env.MODULE_TYPE }}" != "single" ]; then
cd ..
fi
mvn package -Dmaven.test.skip=true

- name: Build and Push Docker Images
if: ${{ env.SKIP != 'image'}}
env:
DOCKER_REPO: ${{ secrets.DOCKER_REPO }}
DOCKER_PASSWORD: ${{ secrets.DOCKER_PWD }}
run: |
echo "Module Name: $MODULE"

if [ "${{ env.MODULE_TYPE }}" != "single" ]; then
cd $MODULE
fi

mkdir docker
cp ./Dockerfile ./docker
cp ./target/*.jar ./docker
cd docker
docker build -t $DOCKER_REPO/$MODULE:$VERSION .
docker login -u $DOCKER_REPO -p $DOCKER_PASSWORD
docker push $DOCKER_REPO/$MODULE:$VERSION

- name: Choose the Server Host
if: ${{ env.ENV != ''}}
run: |
pwd=""
host=""
port=""
if [ "${{ env.ENV }}" == "prod" ]; then
pwd="${{ secrets.PROD_PWD }}"
host="${{ secrets.PROD_ADDRESS }}"
port="${{ secrets.PROD_PORT }}"
elif [ "${{ env.ENV }}" == "test" ]; then
pwd="${{ secrets.TEST_PWD }}"
host="${{ secrets.TEST_ADDRESS }}"
port="${{ secrets.TEST_PORT }}"
else
echo "Invalid environment"
exit 1
fi
echo "PWD=$pwd" >> $GITHUB_ENV
echo "HOST=$host" >> $GITHUB_ENV
echo "PORT=$port" >> $GITHUB_ENV

- name: Connect Server
uses: appleboy/ssh-action@master
with:
# 同上述
host: ${{ env.HOST }}
username: root
password: ${{ env.PWD }}
port: ${{ env.PORT }}
# ssh进入系统后执行什么样的操作。一般是关闭原有的服务在重启
script: |
docker pull ${{ secrets.DOCKER_REPO }}/${{ env.MODULE }}:${{ env.VERSION }}
if [ "${{ env.RUN_PORT }}" != "" ]; then
stop_docker_name=$(docker ps --filter "expose=${{ env.RUN_PORT }}" --format "{{.Names}}")
if [ "$stop_docker_name" != "" ]; then
docker stop $stop_docker_name
fi
docker rm ${{ env.MODULE }}-${{ env.VERSION }}

docker run -p ${{env.RUN_PORT}}:${{env.RUN_PORT}} --name ${{ env.MODULE }}-${{ env.VERSION }} ${{env.DOCKER_ENV}} -e JASYPT_PASSWORD=${{ secrets.JASYPT_PWD }} -d ${{ secrets.DOCKER_REPO }}/${{ env.MODULE }}:${{ env.VERSION }}
fi

36 changes: 36 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
HELP.md
target/
!.mvn/wrapper/maven-wrapper.jar
!**/src/main/**/target/
!**/src/test/**/target/

### 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/
!**/src/main/**/build/
!**/src/test/**/build/

### VS Code ###
.vscode/
application-dev.yml
/src/main/resources/bootstrap-dev.yml
/src/main/resources/you-cant-see-that.yml
34 changes: 34 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
FROM adoptopenjdk:11-jre-hotspot
COPY *.jar /rvc-captcha.jar


ARG SERVER_PORT
ARG ACTIVE
ARG UNIQUE_ID
ARG JASYPT_PASSWORD

ARG MYSQL_ADDR
ARG MYSQL_USERNAME
ARG MYSQL_PASSWORD

ARG REDIS_ADDR
ARG REDIS_PORT
ARG REDIS_PWD

ARG NACOS_SERVER_ADDR
ARG NACOS_SERVER_USER
ARG NACOS_SERVER_PASSWORD

ARG MQ_ADDR
ARG MQ_PORT
ARG MQ_USERNAME
ARG MQ_PWD

ENV SERVER_PORT=${SERVER_PORT}
ENV UNIQUE_ID=${UNIQUE_ID}
ENV JASYPT_PASSWORD = ${JASYPT_PASSWORD}
EXPOSE ${SERVER_PORT}

ENTRYPOINT ["java","-jar","/rvc-captcha.jar"]

#<Auto> -e:test -type:single -m:rvc-captcha -v:1.0.2 -rp:8080 -de:<-e ACTIVE=test -e SERVER_PORT=8080>
133 changes: 133 additions & 0 deletions pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,133 @@
<?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>
<groupId>com.example</groupId>
<artifactId>CaptchaMaster</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>CaptchaMaster</name>
<description>CaptchaMaster</description>

<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.4.1</version>
<relativePath/>
</parent>

<properties>
<java.version>11</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<spring-boot.version>2.3.9.RELEASE</spring-boot.version>
<spring-cloud.version>2020.0.3</spring-cloud.version>
<spring-cloud-start.version>3.0.1</spring-cloud-start.version>
</properties>
<dependencies>
<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>

<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>

<!-- 其他依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
<dependency>
<groupId>com.github.ulisesbocchio</groupId>
<artifactId>jasypt-spring-boot-starter</artifactId>
<version>3.0.3</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</dependency>

<!-- nacos-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>2.2.5.RELEASE</version>
</dependency>

<!--nacos的配置管理依赖-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
<version>2.2.5.RELEASE</version>
</dependency>

<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>

</dependencies>
<dependencyManagement>
<dependencies>
<!--springCloud-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
<version>${spring-cloud-start.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!--nacos的管理依赖-->
</dependencies>
</dependencyManagement>

<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<executable>true</executable>
<layout>JAR</layout>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
<configuration>
<attach>false</attach>
</configuration>
</execution>
</executions>
</plugin>
</plugins>

<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
</build>

</project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package com.example.captchamaster;


import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class CaptchaMasterApplication {

public static void main(String[] args) {
SpringApplication.run(CaptchaMasterApplication.class, args);
}

}
Loading