supervisor;
25 |
26 | @Schema(description = "描述")
27 | private String description;
28 | }
29 |
--------------------------------------------------------------------------------
/macula-cloud-gateway/Dockerfile:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/macula-projects/macula-cloud/62bfbe2a76b96db7b81d9863f11552aef51f100a/macula-cloud-gateway/Dockerfile
--------------------------------------------------------------------------------
/macula-cloud-gateway/README.md:
--------------------------------------------------------------------------------
1 | # Macula Cloud Gateway 网关中心
2 |
3 | 平台对外统一入口,提供统一认证、鉴权、接口加解密等服务
4 |
5 | ## 加解密服务
6 |
7 | CryptoLocaleServiceImpl是本地加解密实现,如果要接入密钥服务器需要修改
--------------------------------------------------------------------------------
/macula-cloud-gateway/src/main/resources/bootstrap.yml:
--------------------------------------------------------------------------------
1 | server:
2 | port: 9000
3 |
4 | spring:
5 | profiles:
6 | active: @profile.active@
7 | application:
8 | name: macula-cloud-gateway
9 | cloud:
10 | nacos:
11 | username: ${nacos.username}
12 | password: ${nacos.password}
13 | config:
14 | server-addr: ${nacos.config.server-addr}
15 | namespace: ${nacos.config.namespace}
16 | # group:
17 | refresh-enabled: true
18 | file-extension: yml
19 |
20 | # 和环境有关的配置信息,不同环境覆盖此处的配置
21 | nacos:
22 | username: nacos
23 | password: nacos
24 | config:
25 | server-addr: 127.0.0.1:8848
26 | namespace: MACULA5
27 |
28 | ---
29 | spring:
30 | config:
31 | activate:
32 | on-profile: dev
33 | nacos:
34 | username: maculav5
35 | #password: 请通过启动命令赋予密码
36 | config:
37 | server-addr: 10.94.108.55:8848
38 | namespace: MACULA5
39 |
--------------------------------------------------------------------------------
/macula-cloud-gateway/src/main/resources/jwk/jose.jks:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/macula-projects/macula-cloud/62bfbe2a76b96db7b81d9863f11552aef51f100a/macula-cloud-gateway/src/main/resources/jwk/jose.jks
--------------------------------------------------------------------------------
/macula-cloud-iam/Dockerfile:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/macula-projects/macula-cloud/62bfbe2a76b96db7b81d9863f11552aef51f100a/macula-cloud-iam/Dockerfile
--------------------------------------------------------------------------------
/macula-cloud-iam/src/main/java/dev/macula/cloud/iam/MaculaIamApplication.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2023 Macula
3 | * macula.dev, China
4 | *
5 | * Licensed under the Apache License, Version 2.0 (the "License");
6 | * you may not use this file except in compliance with the License.
7 | * You may obtain a copy of the License at
8 | *
9 | * http://www.apache.org/licenses/LICENSE-2.0
10 | *
11 | * Unless required by applicable law or agreed to in writing, software
12 | * distributed under the License is distributed on an "AS IS" BASIS,
13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | * See the License for the specific language governing permissions and
15 | * limitations under the License.
16 | */
17 |
18 | package dev.macula.cloud.iam;
19 |
20 | import org.springframework.boot.SpringApplication;
21 | import org.springframework.boot.autoconfigure.SpringBootApplication;
22 |
23 | /**
24 | * {@code dev.macula.cloud.iam.MaculaIamApplication} IAM启动类
25 | *
26 | * @author rain
27 | * @since 2023/3/11 22:22
28 | */
29 | @SpringBootApplication
30 | public class MaculaIamApplication {
31 | public static void main(String[] args) {
32 | SpringApplication.run(MaculaIamApplication.class, args);
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/macula-cloud-iam/src/main/java/dev/macula/cloud/iam/authentication/captcha/CaptchaService.java:
--------------------------------------------------------------------------------
1 | package dev.macula.cloud.iam.authentication.captcha;
2 |
3 | /**
4 | * @author n1
5 | */
6 | public interface CaptchaService {
7 |
8 | /**
9 | * verify captcha
10 | *
11 | * @param phone phone
12 | * @param rawCode rawCode
13 | * @return isVerified
14 | */
15 | boolean verifyCaptcha(String phone, String rawCode);
16 | }
17 |
--------------------------------------------------------------------------------
/macula-cloud-iam/src/main/java/dev/macula/cloud/iam/authentication/captcha/CaptchaUserDetailsService.java:
--------------------------------------------------------------------------------
1 | package dev.macula.cloud.iam.authentication.captcha;
2 |
3 | import org.springframework.security.core.userdetails.UserDetails;
4 | import org.springframework.security.core.userdetails.UsernameNotFoundException;
5 |
6 | /**
7 | * @author felord
8 | */
9 | public interface CaptchaUserDetailsService {
10 | /**
11 | * load user by phone
12 | *
13 | * @param phone phone
14 | * @return userDetails
15 | * @throws UsernameNotFoundException not found user
16 | */
17 | UserDetails loadUserByPhone(String phone) throws UsernameNotFoundException;
18 | }
19 |
--------------------------------------------------------------------------------
/macula-cloud-iam/src/main/java/dev/macula/cloud/iam/authentication/weapp/WeappClient.java:
--------------------------------------------------------------------------------
1 | package dev.macula.cloud.iam.authentication.weapp;
2 |
3 | import lombok.Data;
4 |
5 | /**
6 | * @author felord.cn
7 | * @since 1.0.8.RELEASE
8 | */
9 | @Data
10 | public class WeappClient {
11 | private String clientId;
12 | private String appId;
13 | private String secret;
14 | }
15 |
--------------------------------------------------------------------------------
/macula-cloud-iam/src/main/java/dev/macula/cloud/iam/authentication/weapp/WeappClientService.java:
--------------------------------------------------------------------------------
1 | package dev.macula.cloud.iam.authentication.weapp;
2 |
3 | /**
4 | * The interface Mini app client service.
5 | *
6 | * @author felord.cn
7 | * @since 1.0.8.RELEASE
8 | */
9 | @FunctionalInterface
10 | public interface WeappClientService {
11 | /**
12 | * Get mini app client.
13 | *
14 | * @param clientId the client id
15 | * @return {@link WeappClient}
16 | */
17 | WeappClient get(String clientId);
18 | }
19 |
--------------------------------------------------------------------------------
/macula-cloud-iam/src/main/java/dev/macula/cloud/iam/authentication/weapp/WeappRequest.java:
--------------------------------------------------------------------------------
1 | package dev.macula.cloud.iam.authentication.weapp;
2 |
3 | import lombok.Data;
4 |
5 | /**
6 | * @author n1
7 | * @since 2021/6/25 11:19
8 | */
9 | @Data
10 | public class WeappRequest {
11 | private String clientId;
12 | private String openId;
13 | private String unionId;
14 | private String iv;
15 | private String encryptedData;
16 | }
17 |
--------------------------------------------------------------------------------
/macula-cloud-iam/src/main/java/dev/macula/cloud/iam/authentication/weapp/WeappSessionKeyCache.java:
--------------------------------------------------------------------------------
1 | package dev.macula.cloud.iam.authentication.weapp;
2 |
3 | /**
4 | * 缓存sessionKey
5 | *
6 | * @author felord.cn
7 | * @since 1.0.8.RELEASE
8 | */
9 | public interface WeappSessionKeyCache {
10 |
11 | /**
12 | * Put sessionKey.
13 | *
14 | * @param cacheKey {@code clientId::openId}
15 | * @param sessionKey the session key
16 | */
17 | void put(String cacheKey, String sessionKey);
18 |
19 | /**
20 | * Get sessionKey.
21 | *
22 | * @param cacheKey {@code clientId::openId}
23 | * @return sessionKey
24 | */
25 | String get(String cacheKey);
26 | }
27 |
--------------------------------------------------------------------------------
/macula-cloud-iam/src/main/java/dev/macula/cloud/iam/authentication/weapp/WeappUserDetailsService.java:
--------------------------------------------------------------------------------
1 | package dev.macula.cloud.iam.authentication.weapp;
2 |
3 | import org.springframework.security.core.userdetails.UserDetails;
4 |
5 | /**
6 | * The interface Channel user details service.
7 | *
8 | * @author felord.cn
9 | * @since 1.0.8.RELEASE
10 | */
11 | public interface WeappUserDetailsService {
12 |
13 | /**
14 | * 小程序在微信登录成功后发起后端登录用来注册的方法
15 | *
16 | * @param request the request
17 | * @return the user details
18 | */
19 | UserDetails register(WeappRequest request);
20 |
21 | /**
22 | * openid登录
23 | *
24 | * clientId和openId决定唯一性
25 | *
26 | * @param clientId the client id
27 | * @param openId the open id
28 | * @return the user details
29 | */
30 | UserDetails loadByOpenId(String clientId, String openId);
31 |
32 | }
33 |
--------------------------------------------------------------------------------
/macula-cloud-iam/src/main/java/dev/macula/cloud/iam/config/ProtocolCasConfiguration.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2023 Macula
3 | * macula.dev, China
4 | *
5 | * Licensed under the Apache License, Version 2.0 (the "License");
6 | * you may not use this file except in compliance with the License.
7 | * You may obtain a copy of the License at
8 | *
9 | * http://www.apache.org/licenses/LICENSE-2.0
10 | *
11 | * Unless required by applicable law or agreed to in writing, software
12 | * distributed under the License is distributed on an "AS IS" BASIS,
13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | * See the License for the specific language governing permissions and
15 | * limitations under the License.
16 | */
17 |
18 | package dev.macula.cloud.iam.config;
19 |
20 | import org.springframework.context.annotation.Configuration;
21 |
22 | /**
23 | * {@code ProtocolCasConfiguration} 基于CAS协议的配置
24 | *
25 | * @author rain
26 | * @since 2023/3/27 15:54
27 | */
28 | @Configuration(proxyBeanMethods = false)
29 | public class ProtocolCasConfiguration {
30 | }
31 |
--------------------------------------------------------------------------------
/macula-cloud-iam/src/main/java/dev/macula/cloud/iam/config/ProtocolSaml2Configuration.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2023 Macula
3 | * macula.dev, China
4 | *
5 | * Licensed under the Apache License, Version 2.0 (the "License");
6 | * you may not use this file except in compliance with the License.
7 | * You may obtain a copy of the License at
8 | *
9 | * http://www.apache.org/licenses/LICENSE-2.0
10 | *
11 | * Unless required by applicable law or agreed to in writing, software
12 | * distributed under the License is distributed on an "AS IS" BASIS,
13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | * See the License for the specific language governing permissions and
15 | * limitations under the License.
16 | */
17 |
18 | package dev.macula.cloud.iam.config;
19 |
20 | import org.springframework.context.annotation.Configuration;
21 |
22 | /**
23 | * {@code ProtocolSaml2Configuration} 基于SAML2协议的配置
24 | *
25 | * @author rain
26 | * @since 2023/3/27 15:55
27 | */
28 | @Configuration(proxyBeanMethods = false)
29 | public class ProtocolSaml2Configuration {
30 | }
31 |
--------------------------------------------------------------------------------
/macula-cloud-iam/src/main/java/dev/macula/cloud/iam/handler/JsonAccessDeniedHandler.java:
--------------------------------------------------------------------------------
1 | package dev.macula.cloud.iam.handler;
2 |
3 | import dev.macula.boot.result.Result;
4 | import org.springframework.http.HttpStatus;
5 | import org.springframework.security.access.AccessDeniedException;
6 | import org.springframework.security.web.access.AccessDeniedHandler;
7 |
8 | import javax.servlet.http.HttpServletRequest;
9 | import javax.servlet.http.HttpServletResponse;
10 | import java.io.IOException;
11 |
12 | /**
13 | * 访问被拒绝时的处理逻辑,JSON格式返回
14 | *
15 | * @author n1
16 | * @see AccessDeniedException
17 | * @since 2021 /3/26 14:39
18 | */
19 | public class JsonAccessDeniedHandler extends ResponseWriter implements AccessDeniedHandler {
20 | @Override
21 | public void handle(HttpServletRequest request, HttpServletResponse response,
22 | AccessDeniedException accessDeniedException) throws IOException {
23 | this.write(request, response);
24 | }
25 |
26 | @Override
27 | protected Result> body(HttpServletRequest request) {
28 | return Result.failed(String.valueOf(HttpStatus.FORBIDDEN.value()), "禁止访问",
29 | "{\"uri\": \"" + request.getRequestURI() + "\"}");
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/macula-cloud-iam/src/main/java/dev/macula/cloud/iam/jackson2/CaptchaAuthenticationTokenMixin.java:
--------------------------------------------------------------------------------
1 | package dev.macula.cloud.iam.jackson2;
2 |
3 | import com.fasterxml.jackson.annotation.JsonAutoDetect;
4 | import com.fasterxml.jackson.annotation.JsonTypeInfo;
5 | import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
6 |
7 | /**
8 | * @author felord.cn
9 | * @since 1.0.0
10 | */
11 | @JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, property = "@class")
12 | @JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.ANY, getterVisibility = JsonAutoDetect.Visibility.NONE,
13 | isGetterVisibility = JsonAutoDetect.Visibility.NONE)
14 | @JsonDeserialize(using = CaptchaAuthenticationTokenDeserializer.class)
15 | public abstract class CaptchaAuthenticationTokenMixin {
16 | }
17 |
--------------------------------------------------------------------------------
/macula-cloud-iam/src/main/java/dev/macula/cloud/iam/jackson2/MaculaIamJackson2Module.java:
--------------------------------------------------------------------------------
1 | package dev.macula.cloud.iam.jackson2;
2 |
3 | import com.fasterxml.jackson.core.Version;
4 | import com.fasterxml.jackson.databind.module.SimpleModule;
5 | import dev.macula.cloud.iam.authentication.captcha.CaptchaAuthenticationToken;
6 | import dev.macula.cloud.iam.authentication.weapp.WeappAuthenticationToken;
7 | import org.springframework.security.jackson2.SecurityJackson2Modules;
8 |
9 | /**
10 | * @author felord.cn
11 | * @since 1.0.0
12 | */
13 | public class MaculaIamJackson2Module extends SimpleModule {
14 |
15 | public MaculaIamJackson2Module() {
16 | super(MaculaIamJackson2Module.class.getName(), new Version(1, 0, 0, null, null, null));
17 | }
18 |
19 | @Override
20 | public void setupModule(SetupContext context) {
21 | SecurityJackson2Modules.enableDefaultTyping(context.getOwner());
22 | context.setMixInAnnotations(CaptchaAuthenticationToken.class, CaptchaAuthenticationTokenMixin.class);
23 | context.setMixInAnnotations(WeappAuthenticationToken.class, WeappAuthenticationTokenMixin.class);
24 | context.setMixInAnnotations(Long.class, LongMixin.class);
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/macula-cloud-iam/src/main/java/dev/macula/cloud/iam/jackson2/WeappAuthenticationTokenMixin.java:
--------------------------------------------------------------------------------
1 | package dev.macula.cloud.iam.jackson2;
2 |
3 | import com.fasterxml.jackson.annotation.JsonAutoDetect;
4 | import com.fasterxml.jackson.annotation.JsonTypeInfo;
5 | import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
6 |
7 | /**
8 | * @author felord.cn
9 | * @since 1.0.0
10 | */
11 | @JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, property = "@class")
12 | @JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.ANY, getterVisibility = JsonAutoDetect.Visibility.NONE,
13 | isGetterVisibility = JsonAutoDetect.Visibility.NONE)
14 | @JsonDeserialize(using = WeappAuthenticationTokenDeserializer.class)
15 | public abstract class WeappAuthenticationTokenMixin {
16 | }
17 |
--------------------------------------------------------------------------------
/macula-cloud-iam/src/main/java/dev/macula/cloud/iam/mapper/SysOAuth2ClientMapper.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2023 Macula
3 | * macula.dev, China
4 | *
5 | * Licensed under the Apache License, Version 2.0 (the "License");
6 | * you may not use this file except in compliance with the License.
7 | * You may obtain a copy of the License at
8 | *
9 | * http://www.apache.org/licenses/LICENSE-2.0
10 | *
11 | * Unless required by applicable law or agreed to in writing, software
12 | * distributed under the License is distributed on an "AS IS" BASIS,
13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | * See the License for the specific language governing permissions and
15 | * limitations under the License.
16 | */
17 |
18 | package dev.macula.cloud.iam.mapper;
19 |
20 | import com.baomidou.mybatisplus.core.mapper.BaseMapper;
21 | import dev.macula.cloud.iam.pojo.entity.SysOAuth2Client;
22 | import org.apache.ibatis.annotations.Mapper;
23 |
24 | /**
25 | * {@code SysOAuth2ClientMapper} 客户端Mapper
26 | *
27 | * @author rain
28 | * @since 2023/4/11 19:41
29 | */
30 | @Mapper
31 | public interface SysOAuth2ClientMapper extends BaseMapper {
32 |
33 | }
34 |
--------------------------------------------------------------------------------
/macula-cloud-iam/src/main/java/dev/macula/cloud/iam/pojo/entity/SysRole.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2023 Macula
3 | * macula.dev, China
4 | *
5 | * Licensed under the Apache License, Version 2.0 (the "License");
6 | * you may not use this file except in compliance with the License.
7 | * You may obtain a copy of the License at
8 | *
9 | * http://www.apache.org/licenses/LICENSE-2.0
10 | *
11 | * Unless required by applicable law or agreed to in writing, software
12 | * distributed under the License is distributed on an "AS IS" BASIS,
13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | * See the License for the specific language governing permissions and
15 | * limitations under the License.
16 | */
17 |
18 | package dev.macula.cloud.iam.pojo.entity;
19 |
20 | import dev.macula.boot.starter.mp.entity.BaseEntity;
21 | import io.swagger.v3.oas.annotations.media.Schema;
22 | import lombok.Data;
23 |
24 | @Data
25 | public class SysRole extends BaseEntity {
26 |
27 | private String name;
28 |
29 | @Schema(description = "角色编码")
30 | private String code;
31 | }
32 |
--------------------------------------------------------------------------------
/macula-cloud-iam/src/main/java/dev/macula/cloud/iam/protocol/oauth2/grant/README.md:
--------------------------------------------------------------------------------
1 | # 该包是为了兼容原来扩展的grant type,但OAuth2.1已经不建议使用,未来会移除
--------------------------------------------------------------------------------
/macula-cloud-iam/src/main/java/dev/macula/cloud/iam/protocol/oauth2/grant/base/package-info.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2023 Macula
3 | * macula.dev, China
4 | *
5 | * Licensed under the Apache License, Version 2.0 (the "License");
6 | * you may not use this file except in compliance with the License.
7 | * You may obtain a copy of the License at
8 | *
9 | * http://www.apache.org/licenses/LICENSE-2.0
10 | *
11 | * Unless required by applicable law or agreed to in writing, software
12 | * distributed under the License is distributed on an "AS IS" BASIS,
13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | * See the License for the specific language governing permissions and
15 | * limitations under the License.
16 | */
17 |
18 | /**
19 | * 自定义认证模式接入的抽象实现
20 | */
21 | package dev.macula.cloud.iam.protocol.oauth2.grant.base;
22 |
--------------------------------------------------------------------------------
/macula-cloud-iam/src/main/java/dev/macula/cloud/iam/protocol/oauth2/grant/password/package-info.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2023 Macula
3 | * macula.dev, China
4 | *
5 | * Licensed under the Apache License, Version 2.0 (the "License");
6 | * you may not use this file except in compliance with the License.
7 | * You may obtain a copy of the License at
8 | *
9 | * http://www.apache.org/licenses/LICENSE-2.0
10 | *
11 | * Unless required by applicable law or agreed to in writing, software
12 | * distributed under the License is distributed on an "AS IS" BASIS,
13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | * See the License for the specific language governing permissions and
15 | * limitations under the License.
16 | */
17 |
18 | /**
19 | * 密码模式
20 | */
21 | package dev.macula.cloud.iam.protocol.oauth2.grant.password;
22 |
--------------------------------------------------------------------------------
/macula-cloud-iam/src/main/java/dev/macula/cloud/iam/protocol/oauth2/grant/sms/package-info.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2023 Macula
3 | * macula.dev, China
4 | *
5 | * Licensed under the Apache License, Version 2.0 (the "License");
6 | * you may not use this file except in compliance with the License.
7 | * You may obtain a copy of the License at
8 | *
9 | * http://www.apache.org/licenses/LICENSE-2.0
10 | *
11 | * Unless required by applicable law or agreed to in writing, software
12 | * distributed under the License is distributed on an "AS IS" BASIS,
13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | * See the License for the specific language governing permissions and
15 | * limitations under the License.
16 | */
17 |
18 | /**
19 | * 短信模式
20 | */
21 | package dev.macula.cloud.iam.protocol.oauth2.grant.sms;
22 |
--------------------------------------------------------------------------------
/macula-cloud-iam/src/main/java/dev/macula/cloud/iam/service/support/SysOAuth2ClientService.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2023 Macula
3 | * macula.dev, China
4 | *
5 | * Licensed under the Apache License, Version 2.0 (the "License");
6 | * you may not use this file except in compliance with the License.
7 | * You may obtain a copy of the License at
8 | *
9 | * http://www.apache.org/licenses/LICENSE-2.0
10 | *
11 | * Unless required by applicable law or agreed to in writing, software
12 | * distributed under the License is distributed on an "AS IS" BASIS,
13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | * See the License for the specific language governing permissions and
15 | * limitations under the License.
16 | */
17 |
18 | package dev.macula.cloud.iam.service.support;
19 |
20 | import dev.macula.cloud.iam.pojo.entity.SysOAuth2Client;
21 |
22 | /**
23 | * {@code SysOauth2ClientService} 获取Oauth2Client
24 | *
25 | * @author rain
26 | * @since 2023/4/10 19:44
27 | */
28 | public interface SysOAuth2ClientService {
29 | SysOAuth2Client getClientByClientId(String clientId);
30 | }
31 |
--------------------------------------------------------------------------------
/macula-cloud-iam/src/main/java/dev/macula/cloud/iam/service/userdetails/CaptchaServiceImpl.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2023 Macula
3 | * macula.dev, China
4 | *
5 | * Licensed under the Apache License, Version 2.0 (the "License");
6 | * you may not use this file except in compliance with the License.
7 | * You may obtain a copy of the License at
8 | *
9 | * http://www.apache.org/licenses/LICENSE-2.0
10 | *
11 | * Unless required by applicable law or agreed to in writing, software
12 | * distributed under the License is distributed on an "AS IS" BASIS,
13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | * See the License for the specific language governing permissions and
15 | * limitations under the License.
16 | */
17 |
18 | package dev.macula.cloud.iam.service.userdetails;
19 |
20 | import dev.macula.cloud.iam.authentication.captcha.CaptchaService;
21 | import org.springframework.stereotype.Component;
22 |
23 | /**
24 | * {@code CaptchaServiceImpl} 手机号验证服务
25 | *
26 | * @author rain
27 | * @since 2023/4/12 19:34
28 | */
29 | public class CaptchaServiceImpl implements CaptchaService {
30 | @Override
31 | public boolean verifyCaptcha(String phone, String rawCode) {
32 | // TODO 手机号验证
33 | return true;
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/macula-cloud-iam/src/main/java/dev/macula/cloud/iam/service/userdetails/WeappClientServiceImpl.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2023 Macula
3 | * macula.dev, China
4 | *
5 | * Licensed under the Apache License, Version 2.0 (the "License");
6 | * you may not use this file except in compliance with the License.
7 | * You may obtain a copy of the License at
8 | *
9 | * http://www.apache.org/licenses/LICENSE-2.0
10 | *
11 | * Unless required by applicable law or agreed to in writing, software
12 | * distributed under the License is distributed on an "AS IS" BASIS,
13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | * See the License for the specific language governing permissions and
15 | * limitations under the License.
16 | */
17 |
18 | package dev.macula.cloud.iam.service.userdetails;
19 |
20 | import dev.macula.cloud.iam.authentication.weapp.WeappClient;
21 | import dev.macula.cloud.iam.authentication.weapp.WeappClientService;
22 |
23 | /**
24 | * {@code WeappClientServiceImpl} 获取微信Client配置信息
25 | *
26 | * @author rain
27 | * @since 2023/4/12 19:49
28 | */
29 | public class WeappClientServiceImpl implements WeappClientService {
30 | @Override
31 | public WeappClient get(String clientId) {
32 | // TODO 获取微信CLIENT信息
33 | return null;
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/macula-cloud-iam/src/main/resources/bootstrap.yml:
--------------------------------------------------------------------------------
1 | server:
2 | port: 9010
3 |
4 | spring:
5 | profiles:
6 | active: @profile.active@
7 | application:
8 | name: macula-cloud-iam
9 | cloud:
10 | nacos:
11 | username: ${nacos.username}
12 | password: ${nacos.password}
13 | config:
14 | server-addr: ${nacos.config.server-addr}
15 | namespace: ${nacos.config.namespace}
16 | # group:
17 | refresh-enabled: true
18 | file-extension: yml
19 |
20 | # 和环境有关的配置信息,不同环境覆盖此处的配置
21 | nacos:
22 | username: nacos
23 | password: nacos
24 | config:
25 | server-addr: 127.0.0.1:8848
26 | namespace: MACULA5
27 |
28 | ---
29 | spring:
30 | config:
31 | activate:
32 | on-profile: dev
33 | nacos:
34 | username: maculav5
35 | #password: 请通过启动命令赋予密码
36 | config:
37 | server-addr: 10.94.108.55:8848
38 | namespace: MACULA5
--------------------------------------------------------------------------------
/macula-cloud-iam/src/main/resources/jwk/jose.jks:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/macula-projects/macula-cloud/62bfbe2a76b96db7b81d9863f11552aef51f100a/macula-cloud-iam/src/main/resources/jwk/jose.jks
--------------------------------------------------------------------------------
/macula-cloud-iam/src/main/resources/static/admin/css/code/JetBrainsMono-Medium-3.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/macula-projects/macula-cloud/62bfbe2a76b96db7b81d9863f11552aef51f100a/macula-cloud-iam/src/main/resources/static/admin/css/code/JetBrainsMono-Medium-3.ttf
--------------------------------------------------------------------------------
/macula-cloud-iam/src/main/resources/static/admin/css/code/gruvbox-dark.min.css:
--------------------------------------------------------------------------------
1 | @font-face {font-family: JetBrainsMono;src: url("JetBrainsMono-Medium-3.ttf");}.hljs{display:block;overflow-x:auto;padding:.5em;background:#282828}.hljs,.hljs-subst{color:#ebdbb2}.hljs-deletion,.hljs-formula,.hljs-keyword,.hljs-link,.hljs-selector-tag{color:#fb4934}.hljs-built_in,.hljs-emphasis,.hljs-name,.hljs-quote,.hljs-strong,.hljs-title,.hljs-variable{color:#83a598}.hljs-attr,.hljs-params,.hljs-template-tag,.hljs-type{color:#fabd2f}.hljs-builtin-name,.hljs-doctag,.hljs-literal,.hljs-number{color:#8f3f71}.hljs-code,.hljs-meta,.hljs-regexp,.hljs-selector-id,.hljs-template-variable{color:#fe8019}.hljs-addition,.hljs-meta-string,.hljs-section,.hljs-selector-attr,.hljs-selector-class,.hljs-string,.hljs-symbol{color:#96ceb4}.hljs-attribute,.hljs-bullet,.hljs-class,.hljs-function,.hljs-function .hljs-keyword,.hljs-meta-keyword,.hljs-selector-pseudo,.hljs-tag{color:#8ec07c}.hljs-comment{color:#928374}.hljs-link_label,.hljs-literal,.hljs-number{color:#d3869b}.hljs-comment,.hljs-emphasis{font-style:italic}.hljs-section,.hljs-strong,.hljs-tag{font-weight:700}
--------------------------------------------------------------------------------
/macula-cloud-iam/src/main/resources/static/admin/css/other/generate.css:
--------------------------------------------------------------------------------
1 | layui-table-body, .layui-table-box, .layui-table-cell {
2 | overflow: visible;
3 | }
4 |
5 | .layui-form-select dl {
6 | z-index: 9999;
7 | }
8 |
9 | td .layui-table-cell .layui-form-select, td .layui-table-cell > input.layui-input {
10 | margin-top: -2px;
11 | margin-left: -10px;
12 | margin-right: -15px;
13 | }
14 |
15 | .layui-form-checkbox i {
16 | border-left: 1px solid #d2d2d2;
17 | }
18 |
19 | .layui-input {
20 | height: 30px;
21 | line-height: 30px;
22 | }
23 |
24 | .layui-input[type=text]:focus {
25 | border-color: #5FB878 !important
26 | }
27 |
28 | .layui-form-item .layui-input[readonly] {
29 | background-color: whitesmoke;
30 | opacity: 1;
31 | }
32 |
33 | .menuTree {
34 | max-height: 300px;
35 | display: none;
36 | position: absolute;
37 | border-top: none;
38 | }
--------------------------------------------------------------------------------
/macula-cloud-iam/src/main/resources/static/admin/css/other/result.css:
--------------------------------------------------------------------------------
1 | .result {
2 | text-align: center;
3 |
4 | }
5 |
6 | .result .success svg {
7 | color: #32C682;
8 | text-align: center;
9 | margin-top: 40px;
10 |
11 | }
12 |
13 | .result .error svg {
14 | color: #f56c6c;
15 | text-align: center;
16 | margin-top: 40px;
17 |
18 | }
19 |
20 | .result .title {
21 | margin-top: 25px;
22 |
23 | }
24 |
25 | .result .desc {
26 | margin-top: 25px;
27 | width: 60%;
28 | margin-left: 20%;
29 | color: rgba(0, 0, 0, .45);
30 | }
31 |
32 | .result .content {
33 | margin-top: 20px;
34 | width: 80%;
35 | border-radius: 10px;
36 | background-color: whitesmoke;
37 | height: 200px;
38 | margin-left: 10%;
39 | }
40 |
41 | .result .action {
42 | padding-top: 10px;
43 | border-top: 1px whitesmoke solid;
44 | margin-top: 25px;
45 | }
46 |
--------------------------------------------------------------------------------
/macula-cloud-iam/src/main/resources/static/admin/images/act.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/macula-projects/macula-cloud/62bfbe2a76b96db7b81d9863f11552aef51f100a/macula-cloud-iam/src/main/resources/static/admin/images/act.jpg
--------------------------------------------------------------------------------
/macula-cloud-iam/src/main/resources/static/admin/images/admin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/macula-projects/macula-cloud/62bfbe2a76b96db7b81d9863f11552aef51f100a/macula-cloud-iam/src/main/resources/static/admin/images/admin.png
--------------------------------------------------------------------------------
/macula-cloud-iam/src/main/resources/static/admin/images/avatar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/macula-projects/macula-cloud/62bfbe2a76b96db7b81d9863f11552aef51f100a/macula-cloud-iam/src/main/resources/static/admin/images/avatar.png
--------------------------------------------------------------------------------
/macula-cloud-iam/src/main/resources/static/admin/images/dongtaima.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/macula-projects/macula-cloud/62bfbe2a76b96db7b81d9863f11552aef51f100a/macula-cloud-iam/src/main/resources/static/admin/images/dongtaima.png
--------------------------------------------------------------------------------
/macula-cloud-iam/src/main/resources/static/admin/images/login-bg-15.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/macula-projects/macula-cloud/62bfbe2a76b96db7b81d9863f11552aef51f100a/macula-cloud-iam/src/main/resources/static/admin/images/login-bg-15.jpg
--------------------------------------------------------------------------------
/macula-cloud-iam/src/main/resources/static/admin/images/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/macula-projects/macula-cloud/62bfbe2a76b96db7b81d9863f11552aef51f100a/macula-cloud-iam/src/main/resources/static/admin/images/logo.png
--------------------------------------------------------------------------------
/macula-cloud-iam/src/main/resources/static/admin/images/notice.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/macula-projects/macula-cloud/62bfbe2a76b96db7b81d9863f11552aef51f100a/macula-cloud-iam/src/main/resources/static/admin/images/notice.png
--------------------------------------------------------------------------------
/macula-cloud-iam/src/main/resources/static/admin/images/pass.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/macula-projects/macula-cloud/62bfbe2a76b96db7b81d9863f11552aef51f100a/macula-cloud-iam/src/main/resources/static/admin/images/pass.png
--------------------------------------------------------------------------------
/macula-cloud-iam/src/main/resources/static/admin/images/shouji.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/macula-projects/macula-cloud/62bfbe2a76b96db7b81d9863f11552aef51f100a/macula-cloud-iam/src/main/resources/static/admin/images/shouji.png
--------------------------------------------------------------------------------
/macula-cloud-iam/src/main/resources/static/admin/images/yanzhengma.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/macula-projects/macula-cloud/62bfbe2a76b96db7b81d9863f11552aef51f100a/macula-cloud-iam/src/main/resources/static/admin/images/yanzhengma.png
--------------------------------------------------------------------------------
/macula-cloud-iam/src/main/resources/static/component/layui/css/modules/layer/default/icon-ext.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/macula-projects/macula-cloud/62bfbe2a76b96db7b81d9863f11552aef51f100a/macula-cloud-iam/src/main/resources/static/component/layui/css/modules/layer/default/icon-ext.png
--------------------------------------------------------------------------------
/macula-cloud-iam/src/main/resources/static/component/layui/css/modules/layer/default/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/macula-projects/macula-cloud/62bfbe2a76b96db7b81d9863f11552aef51f100a/macula-cloud-iam/src/main/resources/static/component/layui/css/modules/layer/default/icon.png
--------------------------------------------------------------------------------
/macula-cloud-iam/src/main/resources/static/component/layui/css/modules/layer/default/loading-0.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/macula-projects/macula-cloud/62bfbe2a76b96db7b81d9863f11552aef51f100a/macula-cloud-iam/src/main/resources/static/component/layui/css/modules/layer/default/loading-0.gif
--------------------------------------------------------------------------------
/macula-cloud-iam/src/main/resources/static/component/layui/css/modules/layer/default/loading-1.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/macula-projects/macula-cloud/62bfbe2a76b96db7b81d9863f11552aef51f100a/macula-cloud-iam/src/main/resources/static/component/layui/css/modules/layer/default/loading-1.gif
--------------------------------------------------------------------------------
/macula-cloud-iam/src/main/resources/static/component/layui/css/modules/layer/default/loading-2.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/macula-projects/macula-cloud/62bfbe2a76b96db7b81d9863f11552aef51f100a/macula-cloud-iam/src/main/resources/static/component/layui/css/modules/layer/default/loading-2.gif
--------------------------------------------------------------------------------
/macula-cloud-iam/src/main/resources/static/component/layui/font/iconfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/macula-projects/macula-cloud/62bfbe2a76b96db7b81d9863f11552aef51f100a/macula-cloud-iam/src/main/resources/static/component/layui/font/iconfont.eot
--------------------------------------------------------------------------------
/macula-cloud-iam/src/main/resources/static/component/layui/font/iconfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/macula-projects/macula-cloud/62bfbe2a76b96db7b81d9863f11552aef51f100a/macula-cloud-iam/src/main/resources/static/component/layui/font/iconfont.ttf
--------------------------------------------------------------------------------
/macula-cloud-iam/src/main/resources/static/component/layui/font/iconfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/macula-projects/macula-cloud/62bfbe2a76b96db7b81d9863f11552aef51f100a/macula-cloud-iam/src/main/resources/static/component/layui/font/iconfont.woff
--------------------------------------------------------------------------------
/macula-cloud-iam/src/main/resources/static/component/layui/font/iconfont.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/macula-projects/macula-cloud/62bfbe2a76b96db7b81d9863f11552aef51f100a/macula-cloud-iam/src/main/resources/static/component/layui/font/iconfont.woff2
--------------------------------------------------------------------------------
/macula-cloud-iam/src/main/resources/static/component/pear/css/module/code.css:
--------------------------------------------------------------------------------
1 | .layui-colla-content {
2 | padding: 0px;
3 | }
4 |
5 | .layui-code-view {
6 | margin: 0px !important;
7 | }
8 |
9 | .layui-code-h3 {
10 | display: none !important;
11 | }
--------------------------------------------------------------------------------
/macula-cloud-iam/src/main/resources/static/component/pear/css/module/dtree/font/dtreefont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/macula-projects/macula-cloud/62bfbe2a76b96db7b81d9863f11552aef51f100a/macula-cloud-iam/src/main/resources/static/component/pear/css/module/dtree/font/dtreefont.eot
--------------------------------------------------------------------------------
/macula-cloud-iam/src/main/resources/static/component/pear/css/module/dtree/font/dtreefont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/macula-projects/macula-cloud/62bfbe2a76b96db7b81d9863f11552aef51f100a/macula-cloud-iam/src/main/resources/static/component/pear/css/module/dtree/font/dtreefont.ttf
--------------------------------------------------------------------------------
/macula-cloud-iam/src/main/resources/static/component/pear/css/module/dtree/font/dtreefont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/macula-projects/macula-cloud/62bfbe2a76b96db7b81d9863f11552aef51f100a/macula-cloud-iam/src/main/resources/static/component/pear/css/module/dtree/font/dtreefont.woff
--------------------------------------------------------------------------------
/macula-cloud-iam/src/main/resources/static/component/pear/css/module/iconPicker.css:
--------------------------------------------------------------------------------
1 | .layui-iconpicker .layui-anim {
2 | width: 300px !important;
3 | }
--------------------------------------------------------------------------------
/macula-cloud-iam/src/main/resources/static/component/pear/css/module/label.css:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/macula-projects/macula-cloud/62bfbe2a76b96db7b81d9863f11552aef51f100a/macula-cloud-iam/src/main/resources/static/component/pear/css/module/label.css
--------------------------------------------------------------------------------
/macula-cloud-iam/src/main/resources/static/component/pear/css/module/layer.css:
--------------------------------------------------------------------------------
1 | .layui-layer-msg {
2 | border-color: transparent !important;
3 | box-shadow: 2px 0 6px rgb(0 21 41 / 0.05) !important;
4 | }
--------------------------------------------------------------------------------
/macula-cloud-iam/src/main/resources/static/component/pear/css/module/link.css:
--------------------------------------------------------------------------------
1 | .pear-link {
2 | font-size: 15px !important;
3 | }
4 |
5 | .pear-link.pear-link-primary {
6 | color: #5FB878;
7 | }
8 |
9 | .pear-link.pear-link-success {
10 | color: #5FB878;
11 | }
12 |
13 | .pear-link .pear-link-warming {
14 |
15 |
16 | }
17 |
18 | .pear-link .pear-link-danger {
19 |
20 | }
--------------------------------------------------------------------------------
/macula-cloud-iam/src/main/resources/static/component/pear/css/module/topBar.css:
--------------------------------------------------------------------------------
1 | .layui-fixbar li {
2 | border-radius: 4px;
3 | background-color: #5FB878;
4 | color: white;
5 | }
6 |
--------------------------------------------------------------------------------
/macula-cloud-iam/src/main/resources/static/component/pear/css/module/treetable.css:
--------------------------------------------------------------------------------
1 | .treeTable-icon i:last-child {
2 | display: none !important;
3 | }
4 |
5 | .treeTable-empty {
6 | margin-left: -3px;
7 | }
8 |
9 | .treeTable-empty {
10 | width: 20px;
11 | display: inline-block;
12 | }
13 |
14 | .treeTable-icon {
15 | cursor: pointer;
16 | }
17 |
18 | .treeTable-icon .layui-icon-triangle-d:before {
19 | content: "\e623";
20 | }
21 |
22 | .treeTable-icon.open .layui-icon-triangle-d:before {
23 | content: "\e625";
24 | background-color: transparent;
25 | }
26 |
27 |
--------------------------------------------------------------------------------
/macula-cloud-iam/src/main/resources/static/component/pear/css/pear.css:
--------------------------------------------------------------------------------
1 | @import url("../../layui/css/layui.css");
2 | @import url("../font/iconfont.css");
3 |
4 | @import url("module/dtree/font/dtreefont.css");
5 | @import url("module/dtree/dtree.css");
6 | @import url("module/iconPicker.css");
7 | @import url("module/treetable.css");
8 | @import url("module/message.css");
9 | @import url("module/cropper.css");
10 | @import url("module/loading.css");
11 | @import url("module/topBar.css");
12 | @import url("module/select.css");
13 | @import url("module/layout.css");
14 | @import url("module/notice.css");
15 | @import url("module/button.css");
16 | @import url("module/table.css");
17 | @import url("module/frame.css");
18 | @import url("module/layer.css");
19 | @import url("module/toast.css");
20 | @import url("module/menu.css");
21 | @import url("module/form.css");
22 | @import url("module/code.css");
23 | @import url("module/link.css");
24 | @import url("module/step.css");
25 | @import url("module/card.css");
26 | @import url("module/tab.css");
27 | @import url("module/tag.css");
28 |
29 | .layui-form-required:before {
30 | content: "*";
31 | display: inline-block;
32 | font-family: SimSun;
33 | margin-right: 4px;
34 | font-size: 14px;
35 | line-height: 1;
36 | color: #ed4014
37 | }
--------------------------------------------------------------------------------
/macula-cloud-iam/src/main/resources/static/component/pear/font/iconfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/macula-projects/macula-cloud/62bfbe2a76b96db7b81d9863f11552aef51f100a/macula-cloud-iam/src/main/resources/static/component/pear/font/iconfont.ttf
--------------------------------------------------------------------------------
/macula-cloud-iam/src/main/resources/static/component/pear/font/iconfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/macula-projects/macula-cloud/62bfbe2a76b96db7b81d9863f11552aef51f100a/macula-cloud-iam/src/main/resources/static/component/pear/font/iconfont.woff
--------------------------------------------------------------------------------
/macula-cloud-iam/src/main/resources/static/component/pear/font/iconfont.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/macula-projects/macula-cloud/62bfbe2a76b96db7b81d9863f11552aef51f100a/macula-cloud-iam/src/main/resources/static/component/pear/font/iconfont.woff2
--------------------------------------------------------------------------------
/macula-cloud-iam/src/main/resources/static/component/pear/module/convert.js:
--------------------------------------------------------------------------------
1 | layui.define(['jquery', 'element'], function (exports) {
2 | "use strict";
3 |
4 | /**
5 | * 类 型 转 换 工 具 类
6 | * */
7 | var MOD_NAME = 'convert',
8 | $ = layui.jquery,
9 | element = layui.element;
10 |
11 | var convert = new function () {
12 |
13 | // image 转 base64
14 | this.imageToBase64 = function (img) {
15 | var canvas = document.createElement("canvas");
16 | canvas.width = img.width;
17 | canvas.height = img.height;
18 | var ctx = canvas.getContext("2d");
19 | ctx.drawImage(img, 0, 0, img.width, img.height);
20 | var ext = img.src.substring(img.src.lastIndexOf(".") + 1).toLowerCase();
21 | var dataURL = canvas.toDataURL("image/" + ext);
22 | return dataURL;
23 | }
24 |
25 | }
26 | exports(MOD_NAME, convert);
27 | });
28 |
--------------------------------------------------------------------------------
/macula-cloud-iam/src/main/resources/static/component/pear/module/document.js:
--------------------------------------------------------------------------------
1 | layui.define(['jquery', 'element'], function (exports) {
2 | "use strict";
3 |
4 | var MOD_NAME = 'document';
5 |
6 | var document = function (opt) {
7 | this.option = opt;
8 | };
9 |
10 | exports(MOD_NAME, new document());
11 | })
12 |
--------------------------------------------------------------------------------
/macula-cloud-iam/src/main/resources/static/component/pear/module/tinymce/tinymce/langs/readme.md:
--------------------------------------------------------------------------------
1 | This is where language files should be placed.
2 |
3 | Please DO NOT translate these directly use this service: https://www.transifex.com/projects/p/tinymce/
4 |
--------------------------------------------------------------------------------
/macula-cloud-iam/src/main/resources/static/component/pear/module/tinymce/tinymce/plugins/code/plugin.min.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Tiny Technologies, Inc. All rights reserved.
3 | * Licensed under the LGPL or a commercial license.
4 | * For LGPL see License.txt in the project root for license information.
5 | * For commercial licenses see https://www.tiny.cloud/
6 | *
7 | * Version: 5.6.2 (2020-12-08)
8 | */
9 | !function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager"),o=function(o){var e=o.getContent({source_view:!0});o.windowManager.open({title:"Source Code",size:"large",body:{type:"panel",items:[{type:"textarea",name:"code"}]},buttons:[{type:"cancel",name:"cancel",text:"Cancel"},{type:"submit",name:"save",text:"Save",primary:!0}],initialData:{code:e},onSubmit:function(e){var t,n;t=o,n=e.getData().code,t.focus(),t.undoManager.transact(function(){t.setContent(n)}),t.selection.setCursorLocation(),t.nodeChanged(),e.close()}})};e.add("code",function(e){var t,n;return(t=e).addCommand("mceCodeEditor",function(){o(t)}),(n=e).ui.registry.addButton("code",{icon:"sourcecode",tooltip:"Source code",onAction:function(){return o(n)}}),n.ui.registry.addMenuItem("code",{icon:"sourcecode",text:"Source code",onAction:function(){return o(n)}}),{}})}();
--------------------------------------------------------------------------------
/macula-cloud-iam/src/main/resources/static/component/pear/module/tinymce/tinymce/plugins/colorpicker/plugin.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Tiny Technologies, Inc. All rights reserved.
3 | * Licensed under the LGPL or a commercial license.
4 | * For LGPL see License.txt in the project root for license information.
5 | * For commercial licenses see https://www.tiny.cloud/
6 | *
7 | * Version: 5.6.2 (2020-12-08)
8 | */
9 | (function () {
10 | 'use strict';
11 |
12 | var global = tinymce.util.Tools.resolve('tinymce.PluginManager');
13 |
14 | function Plugin() {
15 | global.add('colorpicker', function () {
16 | console.warn('Color picker plugin is now built in to the core editor, please remove it from your editor configuration');
17 | });
18 | }
19 |
20 | Plugin();
21 |
22 | }());
23 |
--------------------------------------------------------------------------------
/macula-cloud-iam/src/main/resources/static/component/pear/module/tinymce/tinymce/plugins/colorpicker/plugin.min.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Tiny Technologies, Inc. All rights reserved.
3 | * Licensed under the LGPL or a commercial license.
4 | * For LGPL see License.txt in the project root for license information.
5 | * For commercial licenses see https://www.tiny.cloud/
6 | *
7 | * Version: 5.6.2 (2020-12-08)
8 | */
9 | !function(){"use strict";tinymce.util.Tools.resolve("tinymce.PluginManager").add("colorpicker",function(){console.warn("Color picker plugin is now built in to the core editor, please remove it from your editor configuration")})}();
--------------------------------------------------------------------------------
/macula-cloud-iam/src/main/resources/static/component/pear/module/tinymce/tinymce/plugins/contextmenu/plugin.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Tiny Technologies, Inc. All rights reserved.
3 | * Licensed under the LGPL or a commercial license.
4 | * For LGPL see License.txt in the project root for license information.
5 | * For commercial licenses see https://www.tiny.cloud/
6 | *
7 | * Version: 5.6.2 (2020-12-08)
8 | */
9 | (function () {
10 | 'use strict';
11 |
12 | var global = tinymce.util.Tools.resolve('tinymce.PluginManager');
13 |
14 | function Plugin() {
15 | global.add('contextmenu', function () {
16 | console.warn('Context menu plugin is now built in to the core editor, please remove it from your editor configuration');
17 | });
18 | }
19 |
20 | Plugin();
21 |
22 | }());
23 |
--------------------------------------------------------------------------------
/macula-cloud-iam/src/main/resources/static/component/pear/module/tinymce/tinymce/plugins/contextmenu/plugin.min.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Tiny Technologies, Inc. All rights reserved.
3 | * Licensed under the LGPL or a commercial license.
4 | * For LGPL see License.txt in the project root for license information.
5 | * For commercial licenses see https://www.tiny.cloud/
6 | *
7 | * Version: 5.6.2 (2020-12-08)
8 | */
9 | !function(){"use strict";tinymce.util.Tools.resolve("tinymce.PluginManager").add("contextmenu",function(){console.warn("Context menu plugin is now built in to the core editor, please remove it from your editor configuration")})}();
--------------------------------------------------------------------------------
/macula-cloud-iam/src/main/resources/static/component/pear/module/tinymce/tinymce/plugins/hr/plugin.min.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Tiny Technologies, Inc. All rights reserved.
3 | * Licensed under the LGPL or a commercial license.
4 | * For LGPL see License.txt in the project root for license information.
5 | * For commercial licenses see https://www.tiny.cloud/
6 | *
7 | * Version: 5.6.2 (2020-12-08)
8 | */
9 | !function(){"use strict";var n=tinymce.util.Tools.resolve("tinymce.PluginManager");n.add("hr",function(n){var o,t;(o=n).addCommand("InsertHorizontalRule",function(){o.execCommand("mceInsertContent",!1,"
")}),(t=n).ui.registry.addButton("hr",{icon:"horizontal-rule",tooltip:"Horizontal line",onAction:function(){return t.execCommand("InsertHorizontalRule")}}),t.ui.registry.addMenuItem("hr",{icon:"horizontal-rule",text:"Horizontal line",onAction:function(){return t.execCommand("InsertHorizontalRule")}})})}();
--------------------------------------------------------------------------------
/macula-cloud-iam/src/main/resources/static/component/pear/module/tinymce/tinymce/plugins/print/plugin.min.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Tiny Technologies, Inc. All rights reserved.
3 | * Licensed under the LGPL or a commercial license.
4 | * For LGPL see License.txt in the project root for license information.
5 | * For commercial licenses see https://www.tiny.cloud/
6 | *
7 | * Version: 5.6.2 (2020-12-08)
8 | */
9 | !function(){"use strict";var n=tinymce.util.Tools.resolve("tinymce.PluginManager"),e=tinymce.util.Tools.resolve("tinymce.Env");n.add("print",function(n){var t,i;(t=n).addCommand("mcePrint",function(){e.browser.isIE()?t.getDoc().execCommand("print",!1,null):t.getWin().print()}),(i=n).ui.registry.addButton("print",{icon:"print",tooltip:"Print",onAction:function(){return i.execCommand("mcePrint")}}),i.ui.registry.addMenuItem("print",{text:"Print...",icon:"print",onAction:function(){return i.execCommand("mcePrint")}}),n.addShortcut("Meta+P","","mcePrint")})}();
--------------------------------------------------------------------------------
/macula-cloud-iam/src/main/resources/static/component/pear/module/tinymce/tinymce/plugins/textcolor/plugin.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Tiny Technologies, Inc. All rights reserved.
3 | * Licensed under the LGPL or a commercial license.
4 | * For LGPL see License.txt in the project root for license information.
5 | * For commercial licenses see https://www.tiny.cloud/
6 | *
7 | * Version: 5.6.2 (2020-12-08)
8 | */
9 | (function () {
10 | 'use strict';
11 |
12 | var global = tinymce.util.Tools.resolve('tinymce.PluginManager');
13 |
14 | function Plugin() {
15 | global.add('textcolor', function () {
16 | console.warn('Text color plugin is now built in to the core editor, please remove it from your editor configuration');
17 | });
18 | }
19 |
20 | Plugin();
21 |
22 | }());
23 |
--------------------------------------------------------------------------------
/macula-cloud-iam/src/main/resources/static/component/pear/module/tinymce/tinymce/plugins/textcolor/plugin.min.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Tiny Technologies, Inc. All rights reserved.
3 | * Licensed under the LGPL or a commercial license.
4 | * For LGPL see License.txt in the project root for license information.
5 | * For commercial licenses see https://www.tiny.cloud/
6 | *
7 | * Version: 5.6.2 (2020-12-08)
8 | */
9 | !function(){"use strict";tinymce.util.Tools.resolve("tinymce.PluginManager").add("textcolor",function(){console.warn("Text color plugin is now built in to the core editor, please remove it from your editor configuration")})}();
--------------------------------------------------------------------------------
/macula-cloud-iam/src/main/resources/static/component/pear/module/tinymce/tinymce/skins/ui/oxide-dark/content.mobile.css:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Tiny Technologies, Inc. All rights reserved.
3 | * Licensed under the LGPL or a commercial license.
4 | * For LGPL see License.txt in the project root for license information.
5 | * For commercial licenses see https://www.tiny.cloud/
6 | */
7 | .tinymce-mobile-unfocused-selections .tinymce-mobile-unfocused-selection {
8 | /* Note: this file is used inside the content, so isn't part of theming */
9 | background-color: green;
10 | display: inline-block;
11 | opacity: 0.5;
12 | position: absolute;
13 | }
14 |
15 | body {
16 | -webkit-text-size-adjust: none;
17 | }
18 |
19 | body img {
20 | /* this is related to the content margin */
21 | max-width: 96vw;
22 | }
23 |
24 | body table img {
25 | max-width: 95%;
26 | }
27 |
28 | body {
29 | font-family: sans-serif;
30 | }
31 |
32 | table {
33 | border-collapse: collapse;
34 | }
35 |
--------------------------------------------------------------------------------
/macula-cloud-iam/src/main/resources/static/component/pear/module/tinymce/tinymce/skins/ui/oxide-dark/content.mobile.min.css:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Tiny Technologies, Inc. All rights reserved.
3 | * Licensed under the LGPL or a commercial license.
4 | * For LGPL see License.txt in the project root for license information.
5 | * For commercial licenses see https://www.tiny.cloud/
6 | */
7 | .tinymce-mobile-unfocused-selections .tinymce-mobile-unfocused-selection{background-color:green;display:inline-block;opacity:.5;position:absolute}body{-webkit-text-size-adjust:none}body img{max-width:96vw}body table img{max-width:95%}body{font-family:sans-serif}table{border-collapse:collapse}
8 | /*# sourceMappingURL=content.mobile.min.css.map */
9 |
--------------------------------------------------------------------------------
/macula-cloud-iam/src/main/resources/static/component/pear/module/tinymce/tinymce/skins/ui/oxide-dark/content.mobile.min.css.map:
--------------------------------------------------------------------------------
1 | {"version":3,"sources":["ui/dark/content.mobile.css"],"names":[],"mappings":";;;;;;AAMA,yEAEE,iBAAkB,MAClB,QAAS,aACT,QAAS,GACT,SAAU,SAEZ,KACE,yBAA0B,KAE5B,SAEE,UAAW,KAEb,eACE,UAAW,IAEb,KACE,YAAa,WAEf,MACE,gBAAiB","file":"content.mobile.min.css","sourcesContent":["/**\n * Copyright (c) Tiny Technologies, Inc. All rights reserved.\n * Licensed under the LGPL or a commercial license.\n * For LGPL see License.txt in the project root for license information.\n * For commercial licenses see https://www.tiny.cloud/\n */\n.tinymce-mobile-unfocused-selections .tinymce-mobile-unfocused-selection {\n /* Note: this file is used inside the content, so isn't part of theming */\n background-color: green;\n display: inline-block;\n opacity: 0.5;\n position: absolute;\n}\nbody {\n -webkit-text-size-adjust: none;\n}\nbody img {\n /* this is related to the content margin */\n max-width: 96vw;\n}\nbody table img {\n max-width: 95%;\n}\nbody {\n font-family: sans-serif;\n}\ntable {\n border-collapse: collapse;\n}\n"]}
--------------------------------------------------------------------------------
/macula-cloud-iam/src/main/resources/static/component/pear/module/tinymce/tinymce/skins/ui/oxide-dark/fonts/tinymce-mobile.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/macula-projects/macula-cloud/62bfbe2a76b96db7b81d9863f11552aef51f100a/macula-cloud-iam/src/main/resources/static/component/pear/module/tinymce/tinymce/skins/ui/oxide-dark/fonts/tinymce-mobile.woff
--------------------------------------------------------------------------------
/macula-cloud-iam/src/main/resources/static/component/pear/module/tinymce/tinymce/skins/ui/oxide-dark/skin.shadowdom.css:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Tiny Technologies, Inc. All rights reserved.
3 | * Licensed under the LGPL or a commercial license.
4 | * For LGPL see License.txt in the project root for license information.
5 | * For commercial licenses see https://www.tiny.cloud/
6 | */
7 | body.tox-dialog__disable-scroll {
8 | overflow: hidden;
9 | }
10 |
11 | .tox-fullscreen {
12 | border: 0;
13 | height: 100%;
14 | left: 0;
15 | margin: 0;
16 | overflow: hidden;
17 | -ms-scroll-chaining: none;
18 | overscroll-behavior: none;
19 | padding: 0;
20 | position: fixed;
21 | top: 0;
22 | touch-action: pinch-zoom;
23 | width: 100%;
24 | }
25 |
26 | .tox.tox-tinymce.tox-fullscreen .tox-statusbar__resize-handle {
27 | display: none;
28 | }
29 |
30 | .tox.tox-tinymce.tox-fullscreen {
31 | z-index: 1200;
32 | }
33 |
34 | .tox-shadowhost.tox-fullscreen {
35 | z-index: 1200;
36 | }
37 |
38 | .tox-fullscreen .tox.tox-tinymce-aux,
39 | .tox-fullscreen ~ .tox.tox-tinymce-aux {
40 | z-index: 1201;
41 | }
42 |
--------------------------------------------------------------------------------
/macula-cloud-iam/src/main/resources/static/component/pear/module/tinymce/tinymce/skins/ui/oxide-dark/skin.shadowdom.min.css:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Tiny Technologies, Inc. All rights reserved.
3 | * Licensed under the LGPL or a commercial license.
4 | * For LGPL see License.txt in the project root for license information.
5 | * For commercial licenses see https://www.tiny.cloud/
6 | */
7 | body.tox-dialog__disable-scroll{overflow:hidden}.tox-fullscreen{border:0;height:100%;left:0;margin:0;overflow:hidden;-ms-scroll-chaining:none;overscroll-behavior:none;padding:0;position:fixed;top:0;touch-action:pinch-zoom;width:100%}.tox.tox-tinymce.tox-fullscreen .tox-statusbar__resize-handle{display:none}.tox.tox-tinymce.tox-fullscreen{z-index:1200}.tox-shadowhost.tox-fullscreen{z-index:1200}.tox-fullscreen .tox.tox-tinymce-aux,.tox-fullscreen~.tox.tox-tinymce-aux{z-index:1201}
8 | /*# sourceMappingURL=skin.shadowdom.min.css.map */
9 |
--------------------------------------------------------------------------------
/macula-cloud-iam/src/main/resources/static/component/pear/module/tinymce/tinymce/skins/ui/oxide-dark/skin.shadowdom.min.css.map:
--------------------------------------------------------------------------------
1 | {"version":3,"sources":["ui/dark/skin.shadowdom.css"],"names":[],"mappings":";;;;;;AAMA,gCACE,SAAU,OAEZ,gBACE,OAAQ,EACR,OAAQ,KACR,KAAM,EACN,OAAQ,EACR,SAAU,OACV,oBAAqB,KACjB,oBAAqB,KACzB,QAAS,EACT,SAAU,MACV,IAAK,EACL,aAAc,WACd,MAAO,KAET,8DACE,QAAS,KAEX,gCACE,QAAS,KAEX,+BACE,QAAS,KAEX,qCACA,qCACE,QAAS","file":"skin.shadowdom.min.css","sourcesContent":["/**\n * Copyright (c) Tiny Technologies, Inc. All rights reserved.\n * Licensed under the LGPL or a commercial license.\n * For LGPL see License.txt in the project root for license information.\n * For commercial licenses see https://www.tiny.cloud/\n */\nbody.tox-dialog__disable-scroll {\n overflow: hidden;\n}\n.tox-fullscreen {\n border: 0;\n height: 100%;\n left: 0;\n margin: 0;\n overflow: hidden;\n -ms-scroll-chaining: none;\n overscroll-behavior: none;\n padding: 0;\n position: fixed;\n top: 0;\n touch-action: pinch-zoom;\n width: 100%;\n}\n.tox.tox-tinymce.tox-fullscreen .tox-statusbar__resize-handle {\n display: none;\n}\n.tox.tox-tinymce.tox-fullscreen {\n z-index: 1200;\n}\n.tox-shadowhost.tox-fullscreen {\n z-index: 1200;\n}\n.tox-fullscreen .tox.tox-tinymce-aux,\n.tox-fullscreen ~ .tox.tox-tinymce-aux {\n z-index: 1201;\n}\n"]}
--------------------------------------------------------------------------------
/macula-cloud-iam/src/main/resources/static/component/pear/module/tinymce/tinymce/skins/ui/oxide/content.mobile.css:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Tiny Technologies, Inc. All rights reserved.
3 | * Licensed under the LGPL or a commercial license.
4 | * For LGPL see License.txt in the project root for license information.
5 | * For commercial licenses see https://www.tiny.cloud/
6 | */
7 | .tinymce-mobile-unfocused-selections .tinymce-mobile-unfocused-selection {
8 | /* Note: this file is used inside the content, so isn't part of theming */
9 | background-color: green;
10 | display: inline-block;
11 | opacity: 0.5;
12 | position: absolute;
13 | }
14 |
15 | body {
16 | -webkit-text-size-adjust: none;
17 | }
18 |
19 | body img {
20 | /* this is related to the content margin */
21 | max-width: 96vw;
22 | }
23 |
24 | body table img {
25 | max-width: 95%;
26 | }
27 |
28 | body {
29 | font-family: sans-serif;
30 | }
31 |
32 | table {
33 | border-collapse: collapse;
34 | }
35 |
--------------------------------------------------------------------------------
/macula-cloud-iam/src/main/resources/static/component/pear/module/tinymce/tinymce/skins/ui/oxide/content.mobile.min.css:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Tiny Technologies, Inc. All rights reserved.
3 | * Licensed under the LGPL or a commercial license.
4 | * For LGPL see License.txt in the project root for license information.
5 | * For commercial licenses see https://www.tiny.cloud/
6 | */
7 | .tinymce-mobile-unfocused-selections .tinymce-mobile-unfocused-selection{background-color:green;display:inline-block;opacity:.5;position:absolute}body{-webkit-text-size-adjust:none}body img{max-width:96vw}body table img{max-width:95%}body{font-family:sans-serif}table{border-collapse:collapse}
8 | /*# sourceMappingURL=content.mobile.min.css.map */
9 |
--------------------------------------------------------------------------------
/macula-cloud-iam/src/main/resources/static/component/pear/module/tinymce/tinymce/skins/ui/oxide/content.mobile.min.css.map:
--------------------------------------------------------------------------------
1 | {"version":3,"sources":["ui/default/content.mobile.css"],"names":[],"mappings":";;;;;;AAMA,yEAEE,iBAAkB,MAClB,QAAS,aACT,QAAS,GACT,SAAU,SAEZ,KACE,yBAA0B,KAE5B,SAEE,UAAW,KAEb,eACE,UAAW,IAEb,KACE,YAAa,WAEf,MACE,gBAAiB","file":"content.mobile.min.css","sourcesContent":["/**\n * Copyright (c) Tiny Technologies, Inc. All rights reserved.\n * Licensed under the LGPL or a commercial license.\n * For LGPL see License.txt in the project root for license information.\n * For commercial licenses see https://www.tiny.cloud/\n */\n.tinymce-mobile-unfocused-selections .tinymce-mobile-unfocused-selection {\n /* Note: this file is used inside the content, so isn't part of theming */\n background-color: green;\n display: inline-block;\n opacity: 0.5;\n position: absolute;\n}\nbody {\n -webkit-text-size-adjust: none;\n}\nbody img {\n /* this is related to the content margin */\n max-width: 96vw;\n}\nbody table img {\n max-width: 95%;\n}\nbody {\n font-family: sans-serif;\n}\ntable {\n border-collapse: collapse;\n}\n"]}
--------------------------------------------------------------------------------
/macula-cloud-iam/src/main/resources/static/component/pear/module/tinymce/tinymce/skins/ui/oxide/fonts/tinymce-mobile.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/macula-projects/macula-cloud/62bfbe2a76b96db7b81d9863f11552aef51f100a/macula-cloud-iam/src/main/resources/static/component/pear/module/tinymce/tinymce/skins/ui/oxide/fonts/tinymce-mobile.woff
--------------------------------------------------------------------------------
/macula-cloud-iam/src/main/resources/static/component/pear/module/tinymce/tinymce/skins/ui/oxide/skin.shadowdom.css:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Tiny Technologies, Inc. All rights reserved.
3 | * Licensed under the LGPL or a commercial license.
4 | * For LGPL see License.txt in the project root for license information.
5 | * For commercial licenses see https://www.tiny.cloud/
6 | */
7 | body.tox-dialog__disable-scroll {
8 | overflow: hidden;
9 | }
10 |
11 | .tox-fullscreen {
12 | border: 0;
13 | height: 100%;
14 | left: 0;
15 | margin: 0;
16 | overflow: hidden;
17 | -ms-scroll-chaining: none;
18 | overscroll-behavior: none;
19 | padding: 0;
20 | position: fixed;
21 | top: 0;
22 | touch-action: pinch-zoom;
23 | width: 100%;
24 | }
25 |
26 | .tox.tox-tinymce.tox-fullscreen .tox-statusbar__resize-handle {
27 | display: none;
28 | }
29 |
30 | .tox.tox-tinymce.tox-fullscreen {
31 | z-index: 1200;
32 | }
33 |
34 | .tox-shadowhost.tox-fullscreen {
35 | z-index: 1200;
36 | }
37 |
38 | .tox-fullscreen .tox.tox-tinymce-aux,
39 | .tox-fullscreen ~ .tox.tox-tinymce-aux {
40 | z-index: 1201;
41 | }
42 |
--------------------------------------------------------------------------------
/macula-cloud-iam/src/main/resources/static/component/pear/module/tinymce/tinymce/skins/ui/oxide/skin.shadowdom.min.css:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Tiny Technologies, Inc. All rights reserved.
3 | * Licensed under the LGPL or a commercial license.
4 | * For LGPL see License.txt in the project root for license information.
5 | * For commercial licenses see https://www.tiny.cloud/
6 | */
7 | body.tox-dialog__disable-scroll{overflow:hidden}.tox-fullscreen{border:0;height:100%;left:0;margin:0;overflow:hidden;-ms-scroll-chaining:none;overscroll-behavior:none;padding:0;position:fixed;top:0;touch-action:pinch-zoom;width:100%}.tox.tox-tinymce.tox-fullscreen .tox-statusbar__resize-handle{display:none}.tox.tox-tinymce.tox-fullscreen{z-index:1200}.tox-shadowhost.tox-fullscreen{z-index:1200}.tox-fullscreen .tox.tox-tinymce-aux,.tox-fullscreen~.tox.tox-tinymce-aux{z-index:1201}
8 | /*# sourceMappingURL=skin.shadowdom.min.css.map */
9 |
--------------------------------------------------------------------------------
/macula-cloud-iam/src/main/resources/static/component/pear/module/tinymce/tinymce/skins/ui/oxide/skin.shadowdom.min.css.map:
--------------------------------------------------------------------------------
1 | {"version":3,"sources":["ui/default/skin.shadowdom.css"],"names":[],"mappings":";;;;;;AAMA,gCACE,SAAU,OAEZ,gBACE,OAAQ,EACR,OAAQ,KACR,KAAM,EACN,OAAQ,EACR,SAAU,OACV,oBAAqB,KACjB,oBAAqB,KACzB,QAAS,EACT,SAAU,MACV,IAAK,EACL,aAAc,WACd,MAAO,KAET,8DACE,QAAS,KAEX,gCACE,QAAS,KAEX,+BACE,QAAS,KAEX,qCACA,qCACE,QAAS","file":"skin.shadowdom.min.css","sourcesContent":["/**\n * Copyright (c) Tiny Technologies, Inc. All rights reserved.\n * Licensed under the LGPL or a commercial license.\n * For LGPL see License.txt in the project root for license information.\n * For commercial licenses see https://www.tiny.cloud/\n */\nbody.tox-dialog__disable-scroll {\n overflow: hidden;\n}\n.tox-fullscreen {\n border: 0;\n height: 100%;\n left: 0;\n margin: 0;\n overflow: hidden;\n -ms-scroll-chaining: none;\n overscroll-behavior: none;\n padding: 0;\n position: fixed;\n top: 0;\n touch-action: pinch-zoom;\n width: 100%;\n}\n.tox.tox-tinymce.tox-fullscreen .tox-statusbar__resize-handle {\n display: none;\n}\n.tox.tox-tinymce.tox-fullscreen {\n z-index: 1200;\n}\n.tox-shadowhost.tox-fullscreen {\n z-index: 1200;\n}\n.tox-fullscreen .tox.tox-tinymce-aux,\n.tox-fullscreen ~ .tox.tox-tinymce-aux {\n z-index: 1201;\n}\n"]}
--------------------------------------------------------------------------------
/macula-cloud-iam/src/main/resources/static/component/pear/module/topBar.js:
--------------------------------------------------------------------------------
1 | layui.define(['jquery', 'element', 'util'], function (exports) {
2 | "use strict";
3 |
4 | var MOD_NAME = 'topBar',
5 | $ = layui.jquery,
6 | util = layui.util,
7 | element = layui.element;
8 |
9 | var topBar = new function () {
10 |
11 | util.fixbar({});
12 | }
13 | exports(MOD_NAME, topBar);
14 | });
--------------------------------------------------------------------------------
/macula-cloud-iam/src/main/resources/static/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/macula-projects/macula-cloud/62bfbe2a76b96db7b81d9863f11552aef51f100a/macula-cloud-iam/src/main/resources/static/favicon.ico
--------------------------------------------------------------------------------
/macula-cloud-iam/src/main/resources/templates/error/403.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
![]()
10 |
11 |
403
12 |
抱歉,你无权访问该页面
13 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/macula-cloud-iam/src/main/resources/templates/error/404.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
![]()
10 |
11 |
404
12 |
抱歉,你访问的页面不存在或仍在开发中
13 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/macula-cloud-iam/src/main/resources/templates/error/500.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
![]()
10 |
11 |
500
12 |
抱歉,服务器出错了
13 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/macula-cloud-iam/src/main/resources/templates/include.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/macula-cloud-iam/src/main/resources/templates/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
18 |
19 |
20 |
26 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/macula-cloud-rocketmq/Dockerfile:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/macula-projects/macula-cloud/62bfbe2a76b96db7b81d9863f11552aef51f100a/macula-cloud-rocketmq/Dockerfile
--------------------------------------------------------------------------------
/macula-cloud-rocketmq/README.md:
--------------------------------------------------------------------------------
1 | # Macula Cloud RocketMQ MQ管理
2 |
3 | TODO 基于RocketMQ 和 RocketMQ Connect的管理端
--------------------------------------------------------------------------------
/macula-cloud-rocketmq/src/main/java/dev/macula/cloud/rocketmq/MaculaRocketMQApplication.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2023 Macula
3 | * macula.dev, China
4 | *
5 | * Licensed under the Apache License, Version 2.0 (the "License");
6 | * you may not use this file except in compliance with the License.
7 | * You may obtain a copy of the License at
8 | *
9 | * http://www.apache.org/licenses/LICENSE-2.0
10 | *
11 | * Unless required by applicable law or agreed to in writing, software
12 | * distributed under the License is distributed on an "AS IS" BASIS,
13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | * See the License for the specific language governing permissions and
15 | * limitations under the License.
16 | */
17 |
18 | package dev.macula.cloud.rocketmq;
19 |
20 | import org.springframework.boot.SpringApplication;
21 | import org.springframework.boot.autoconfigure.SpringBootApplication;
22 |
23 | /**
24 | * {@code MaculaRocketMQApplication} is 启动类
25 | *
26 | * @author rain
27 | * @since 2023/7/18 10:35
28 | */
29 | @SpringBootApplication
30 | public class MaculaRocketMQApplication {
31 | public static void main(String[] args) {
32 | SpringApplication.run(MaculaRocketMQApplication.class, args);
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/macula-cloud-seata/Dockerfile:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/macula-projects/macula-cloud/62bfbe2a76b96db7b81d9863f11552aef51f100a/macula-cloud-seata/Dockerfile
--------------------------------------------------------------------------------
/macula-cloud-seata/README.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/macula-projects/macula-cloud/62bfbe2a76b96db7b81d9863f11552aef51f100a/macula-cloud-seata/README.md
--------------------------------------------------------------------------------
/macula-cloud-seata/src/main/java/dev/macula/cloud/seata/MaculaSeataApplication.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2023 Macula
3 | * macula.dev, China
4 | *
5 | * Licensed under the Apache License, Version 2.0 (the "License");
6 | * you may not use this file except in compliance with the License.
7 | * You may obtain a copy of the License at
8 | *
9 | * http://www.apache.org/licenses/LICENSE-2.0
10 | *
11 | * Unless required by applicable law or agreed to in writing, software
12 | * distributed under the License is distributed on an "AS IS" BASIS,
13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | * See the License for the specific language governing permissions and
15 | * limitations under the License.
16 | */
17 |
18 | package dev.macula.cloud.seata;
19 |
20 | import org.springframework.boot.SpringApplication;
21 | import org.springframework.boot.autoconfigure.SpringBootApplication;
22 |
23 | /**
24 | * {@code MaculaSeataApplication} Seata服务端启动
25 | *
26 | * @author rain
27 | * @since 2023/8/24 15:33
28 | */
29 | @SpringBootApplication(scanBasePackages = {"io.seata"})
30 | public class MaculaSeataApplication {
31 | public static void main(String[] args) {
32 | SpringApplication.run(io.seata.server.ServerApplication.class, args);
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/macula-cloud-system/Dockerfile:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/macula-projects/macula-cloud/62bfbe2a76b96db7b81d9863f11552aef51f100a/macula-cloud-system/Dockerfile
--------------------------------------------------------------------------------
/macula-cloud-system/src/main/java/dev/macula/cloud/system/converter/AuditLogConverter.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2022 Macula
3 | * macula.dev, China
4 | *
5 | * Licensed under the Apache License, Version 2.0 (the "License");
6 | * you may not use this file except in compliance with the License.
7 | * You may obtain a copy of the License at
8 | *
9 | * http://www.apache.org/licenses/LICENSE-2.0
10 | *
11 | * Unless required by applicable law or agreed to in writing, software
12 | * distributed under the License is distributed on an "AS IS" BASIS,
13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | * See the License for the specific language governing permissions and
15 | * limitations under the License.
16 | */
17 |
18 | package dev.macula.cloud.system.converter;
19 |
20 | import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
21 | import dev.macula.cloud.system.pojo.bo.AuditLogBO;
22 | import dev.macula.cloud.system.vo.log.AuditLogVO;
23 | import org.mapstruct.Mapper;
24 |
25 | @Mapper
26 | public interface AuditLogConverter {
27 |
28 | Page bo2Vo(Page bo);
29 |
30 | }
31 |
--------------------------------------------------------------------------------
/macula-cloud-system/src/main/java/dev/macula/cloud/system/converter/DeptConverter.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2023 Macula
3 | * macula.dev, China
4 | *
5 | * Licensed under the Apache License, Version 2.0 (the "License");
6 | * you may not use this file except in compliance with the License.
7 | * You may obtain a copy of the License at
8 | *
9 | * http://www.apache.org/licenses/LICENSE-2.0
10 | *
11 | * Unless required by applicable law or agreed to in writing, software
12 | * distributed under the License is distributed on an "AS IS" BASIS,
13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | * See the License for the specific language governing permissions and
15 | * limitations under the License.
16 | */
17 |
18 | package dev.macula.cloud.system.converter;
19 |
20 | import dev.macula.cloud.system.form.DeptForm;
21 | import dev.macula.cloud.system.pojo.entity.SysDept;
22 | import dev.macula.cloud.system.vo.dept.DeptVO;
23 | import org.mapstruct.Mapper;
24 |
25 | /**
26 | * 部门对象转换器
27 | *
28 | * @author haoxr
29 | * @since 2022/7/29
30 | */
31 | @Mapper
32 | public interface DeptConverter {
33 |
34 | DeptForm entity2Form(SysDept entity);
35 |
36 | DeptVO entity2Vo(SysDept entity);
37 |
38 | SysDept form2Entity(DeptForm deptForm);
39 |
40 | }
--------------------------------------------------------------------------------
/macula-cloud-system/src/main/java/dev/macula/cloud/system/converter/TenantConverter.java:
--------------------------------------------------------------------------------
1 | package dev.macula.cloud.system.converter;
2 |
3 | import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
4 | import dev.macula.cloud.system.form.TenantForm;
5 | import dev.macula.cloud.system.pojo.bo.TenantBO;
6 | import dev.macula.cloud.system.pojo.entity.SysTenantInfo;
7 | import dev.macula.cloud.system.vo.tenant.TenantPageVO;
8 | import org.mapstruct.InheritInverseConfiguration;
9 | import org.mapstruct.Mapper;
10 |
11 | @Mapper
12 | public interface TenantConverter {
13 |
14 | @InheritInverseConfiguration(name = "entity2Form")
15 | SysTenantInfo form2Entity(TenantForm entity);
16 |
17 | Page bo2Page(Page page);
18 | }
19 |
--------------------------------------------------------------------------------
/macula-cloud-system/src/main/java/dev/macula/cloud/system/mapper/SysDictItemMapper.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2023 Macula
3 | * macula.dev, China
4 | *
5 | * Licensed under the Apache License, Version 2.0 (the "License");
6 | * you may not use this file except in compliance with the License.
7 | * You may obtain a copy of the License at
8 | *
9 | * http://www.apache.org/licenses/LICENSE-2.0
10 | *
11 | * Unless required by applicable law or agreed to in writing, software
12 | * distributed under the License is distributed on an "AS IS" BASIS,
13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | * See the License for the specific language governing permissions and
15 | * limitations under the License.
16 | */
17 |
18 | package dev.macula.cloud.system.mapper;
19 |
20 | import com.baomidou.mybatisplus.core.mapper.BaseMapper;
21 | import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
22 | import dev.macula.cloud.system.pojo.entity.SysDictItem;
23 | import org.apache.ibatis.annotations.Mapper;
24 |
25 | import java.util.List;
26 |
27 | @Mapper
28 | public interface SysDictItemMapper extends BaseMapper {
29 |
30 | List list(Page page, SysDictItem dictItem);
31 | }
32 |
--------------------------------------------------------------------------------
/macula-cloud-system/src/main/java/dev/macula/cloud/system/mapper/SysDictTypeMapper.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2023 Macula
3 | * macula.dev, China
4 | *
5 | * Licensed under the Apache License, Version 2.0 (the "License");
6 | * you may not use this file except in compliance with the License.
7 | * You may obtain a copy of the License at
8 | *
9 | * http://www.apache.org/licenses/LICENSE-2.0
10 | *
11 | * Unless required by applicable law or agreed to in writing, software
12 | * distributed under the License is distributed on an "AS IS" BASIS,
13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | * See the License for the specific language governing permissions and
15 | * limitations under the License.
16 | */
17 |
18 | package dev.macula.cloud.system.mapper;
19 |
20 | import com.baomidou.mybatisplus.core.mapper.BaseMapper;
21 | import dev.macula.cloud.system.pojo.entity.SysDictType;
22 | import org.apache.ibatis.annotations.Mapper;
23 |
24 | @Mapper
25 | public interface SysDictTypeMapper extends BaseMapper {
26 |
27 | }
28 |
--------------------------------------------------------------------------------
/macula-cloud-system/src/main/java/dev/macula/cloud/system/mapper/SysRolePermissionMapper.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2023 Macula
3 | * macula.dev, China
4 | *
5 | * Licensed under the Apache License, Version 2.0 (the "License");
6 | * you may not use this file except in compliance with the License.
7 | * You may obtain a copy of the License at
8 | *
9 | * http://www.apache.org/licenses/LICENSE-2.0
10 | *
11 | * Unless required by applicable law or agreed to in writing, software
12 | * distributed under the License is distributed on an "AS IS" BASIS,
13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | * See the License for the specific language governing permissions and
15 | * limitations under the License.
16 | */
17 |
18 | package dev.macula.cloud.system.mapper;
19 |
20 | import com.baomidou.mybatisplus.core.mapper.BaseMapper;
21 | import dev.macula.cloud.system.pojo.entity.SysRolePermission;
22 | import org.apache.ibatis.annotations.Mapper;
23 |
24 | import java.util.List;
25 |
26 | @Mapper
27 | public interface SysRolePermissionMapper extends BaseMapper {
28 |
29 | /**
30 | * 获取角色拥有的权限ID集合
31 | *
32 | * @param roleId 角色ID
33 | * @return 权限ID集合
34 | */
35 | List listPermIdsByRoleId(Long roleId);
36 | }
37 |
--------------------------------------------------------------------------------
/macula-cloud-system/src/main/java/dev/macula/cloud/system/mapper/SysTenantInfoMapper.java:
--------------------------------------------------------------------------------
1 | package dev.macula.cloud.system.mapper;
2 |
3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4 | import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
5 | import dev.macula.cloud.system.pojo.bo.TenantBO;
6 | import dev.macula.cloud.system.pojo.entity.SysTenantInfo;
7 | import dev.macula.cloud.system.query.TenantPageQuery;
8 | import org.apache.ibatis.annotations.Mapper;
9 |
10 | @Mapper
11 | public interface SysTenantInfoMapper extends BaseMapper {
12 |
13 | /**
14 | * 租户分页列表
15 | *
16 | * @param page 分页对象
17 | * @param queryParams 查询条件
18 | * @return 租户列表
19 | */
20 | Page listTenantPages(Page page, TenantPageQuery queryParams);
21 | }
22 |
--------------------------------------------------------------------------------
/macula-cloud-system/src/main/java/dev/macula/cloud/system/mapper/SysTenantUserMapper.java:
--------------------------------------------------------------------------------
1 | package dev.macula.cloud.system.mapper;
2 |
3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4 | import dev.macula.cloud.system.pojo.entity.SysTenantUser;
5 | import org.apache.ibatis.annotations.Mapper;
6 |
7 | /**
8 | * 用户租户持久层
9 | */
10 | @Mapper
11 | public interface SysTenantUserMapper extends BaseMapper {
12 | }
13 |
--------------------------------------------------------------------------------
/macula-cloud-system/src/main/java/dev/macula/cloud/system/mapper/SysUserRoleMapper.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2023 Macula
3 | * macula.dev, China
4 | *
5 | * Licensed under the Apache License, Version 2.0 (the "License");
6 | * you may not use this file except in compliance with the License.
7 | * You may obtain a copy of the License at
8 | *
9 | * http://www.apache.org/licenses/LICENSE-2.0
10 | *
11 | * Unless required by applicable law or agreed to in writing, software
12 | * distributed under the License is distributed on an "AS IS" BASIS,
13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | * See the License for the specific language governing permissions and
15 | * limitations under the License.
16 | */
17 |
18 | package dev.macula.cloud.system.mapper;
19 |
20 | import com.baomidou.mybatisplus.core.mapper.BaseMapper;
21 | import dev.macula.cloud.system.pojo.entity.SysUserRole;
22 | import org.apache.ibatis.annotations.Mapper;
23 |
24 | import java.util.List;
25 |
26 | /**
27 | * 用户角色持久层
28 | *
29 | * @author haoxr
30 | * @since 2022/1/15
31 | */
32 | @Mapper
33 | public interface SysUserRoleMapper extends BaseMapper {
34 | List listRoleIdsByUserIdAndScope(Long userId);
35 | }
36 |
--------------------------------------------------------------------------------
/macula-cloud-system/src/main/java/dev/macula/cloud/system/pojo/bo/AuditLogBO.java:
--------------------------------------------------------------------------------
1 | package dev.macula.cloud.system.pojo.bo;
2 |
3 | import com.fasterxml.jackson.annotation.JsonFormat;
4 | import lombok.Data;
5 |
6 | import java.time.LocalDateTime;
7 |
8 | @Data
9 | public class AuditLogBO {
10 | /** 操作IP */
11 | private String opIp;
12 |
13 | /** 请求路径 */
14 | private String opUrl;
15 |
16 | /** 操作人 */
17 | private String opName;
18 |
19 | /** 操作标题 */
20 | private String opTitle;
21 |
22 | /** 请求方法 */
23 | private String opMethod;
24 |
25 | /** 请求方式 */
26 | private String opRequestMethod;
27 |
28 | /** 请求参数 */
29 | private String opParam;
30 |
31 | /** 操作状态(0-成功; 1-失败) */
32 | private Integer opStatus;
33 |
34 | /** 错误信息 */
35 | private String errorMsg;
36 |
37 | /** 响应结果信息 */
38 | private String jsonResult;
39 |
40 | /** 创建时间 */
41 | @JsonFormat(pattern = "yyyy-MM-dd")
42 | private LocalDateTime createTime;
43 |
44 | /** 创建人 */
45 | private String createBy;
46 | }
47 |
--------------------------------------------------------------------------------
/macula-cloud-system/src/main/java/dev/macula/cloud/system/pojo/bo/TenantBO.java:
--------------------------------------------------------------------------------
1 | package dev.macula.cloud.system.pojo.bo;
2 |
3 | import com.fasterxml.jackson.annotation.JsonFormat;
4 | import lombok.Data;
5 |
6 | import java.util.Date;
7 | import java.util.List;
8 |
9 | @Data
10 | public class TenantBO {
11 |
12 | private Long id;
13 |
14 | /**
15 | * 租户名称
16 | */
17 | private String name;
18 |
19 | /**
20 | * 租户编码
21 | */
22 | private String code;
23 |
24 | /**
25 | * 描述
26 | */
27 | private String description;
28 |
29 | /**
30 | * 负责人
31 | */
32 | private List supervisor;
33 |
34 | /**
35 | * 创建时间
36 | */
37 | @JsonFormat(pattern = "yyyy-MM-dd")
38 | private Date createTime;
39 | }
40 |
--------------------------------------------------------------------------------
/macula-cloud-system/src/main/java/dev/macula/cloud/system/pojo/bo/TenantUserBO.java:
--------------------------------------------------------------------------------
1 | package dev.macula.cloud.system.pojo.bo;
2 |
3 | import lombok.Data;
4 |
5 | @Data
6 | public class TenantUserBO {
7 | private Long id;
8 | private String username;
9 | }
10 |
--------------------------------------------------------------------------------
/macula-cloud-system/src/main/java/dev/macula/cloud/system/pojo/entity/SysApplication.java:
--------------------------------------------------------------------------------
1 | package dev.macula.cloud.system.pojo.entity;
2 |
3 | import com.baomidou.mybatisplus.annotation.TableName;
4 | import dev.macula.boot.starter.mp.entity.BaseEntity;
5 | import lombok.Data;
6 |
7 | @Data
8 | @TableName("sys_application_tenant")
9 | public class SysApplication extends BaseEntity {
10 |
11 | private String applicationName;
12 |
13 | private String homepage;
14 |
15 | private String code;
16 |
17 | private String sk;
18 |
19 | private String manager;
20 |
21 | private String maintainer;
22 |
23 | private String mobile;
24 |
25 | private String accessPath;
26 |
27 | private boolean useAttrs;
28 |
29 | private String allowedAttrs;
30 | }
31 |
--------------------------------------------------------------------------------
/macula-cloud-system/src/main/java/dev/macula/cloud/system/pojo/entity/SysDept.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2023 Macula
3 | * macula.dev, China
4 | *
5 | * Licensed under the Apache License, Version 2.0 (the "License");
6 | * you may not use this file except in compliance with the License.
7 | * You may obtain a copy of the License at
8 | *
9 | * http://www.apache.org/licenses/LICENSE-2.0
10 | *
11 | * Unless required by applicable law or agreed to in writing, software
12 | * distributed under the License is distributed on an "AS IS" BASIS,
13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | * See the License for the specific language governing permissions and
15 | * limitations under the License.
16 | */
17 |
18 | package dev.macula.cloud.system.pojo.entity;
19 |
20 | import dev.macula.boot.starter.mp.entity.BaseEntity;
21 | import lombok.Data;
22 |
23 | @Data
24 | public class SysDept extends BaseEntity {
25 |
26 | private String name;
27 |
28 | private Long parentId;
29 |
30 | private String treePath;
31 |
32 | private Integer sort;
33 |
34 | private Integer status;
35 |
36 | private Integer deleted;
37 |
38 | }
39 |
--------------------------------------------------------------------------------
/macula-cloud-system/src/main/java/dev/macula/cloud/system/pojo/entity/SysDictType.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2023 Macula
3 | * macula.dev, China
4 | *
5 | * Licensed under the Apache License, Version 2.0 (the "License");
6 | * you may not use this file except in compliance with the License.
7 | * You may obtain a copy of the License at
8 | *
9 | * http://www.apache.org/licenses/LICENSE-2.0
10 | *
11 | * Unless required by applicable law or agreed to in writing, software
12 | * distributed under the License is distributed on an "AS IS" BASIS,
13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | * See the License for the specific language governing permissions and
15 | * limitations under the License.
16 | */
17 |
18 | package dev.macula.cloud.system.pojo.entity;
19 |
20 | import com.baomidou.mybatisplus.annotation.TableName;
21 | import dev.macula.boot.starter.mp.entity.BaseEntity;
22 | import lombok.Data;
23 |
24 | @Data
25 | @TableName("sys_dict_type_tenant")
26 | public class SysDictType extends BaseEntity {
27 |
28 | private String code;
29 |
30 | private String name;
31 |
32 | private Integer status;
33 |
34 | private String remark;
35 |
36 | }
37 |
--------------------------------------------------------------------------------
/macula-cloud-system/src/main/java/dev/macula/cloud/system/pojo/entity/SysLog.java:
--------------------------------------------------------------------------------
1 | package dev.macula.cloud.system.pojo.entity;
2 |
3 | import dev.macula.boot.starter.mp.entity.BaseEntity;
4 | import lombok.Data;
5 |
6 | @Data
7 | public class SysLog extends BaseEntity {
8 |
9 | private String opIp; // 操作IP
10 |
11 | private String opUrl; // 请求路径
12 |
13 | private String opName; // 操作人
14 |
15 | private String opTitle; // 操作标题
16 |
17 | private String opMethod; // 请求方法
18 |
19 | private String opRequestMethod; // 请求方式
20 |
21 | private String opParam; // 请求参数
22 |
23 | private Integer opStatus; // 操作状态(0-成功 1-失败)
24 |
25 | private String errorMsg; // 错误信息
26 |
27 | private String jsonResult; // 响应结果信息
28 |
29 | }
30 |
--------------------------------------------------------------------------------
/macula-cloud-system/src/main/java/dev/macula/cloud/system/pojo/entity/SysRoleMenu.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2023 Macula
3 | * macula.dev, China
4 | *
5 | * Licensed under the Apache License, Version 2.0 (the "License");
6 | * you may not use this file except in compliance with the License.
7 | * You may obtain a copy of the License at
8 | *
9 | * http://www.apache.org/licenses/LICENSE-2.0
10 | *
11 | * Unless required by applicable law or agreed to in writing, software
12 | * distributed under the License is distributed on an "AS IS" BASIS,
13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | * See the License for the specific language governing permissions and
15 | * limitations under the License.
16 | */
17 |
18 | package dev.macula.cloud.system.pojo.entity;
19 |
20 | import com.baomidou.mybatisplus.annotation.TableName;
21 | import lombok.AllArgsConstructor;
22 | import lombok.Data;
23 |
24 | @Data
25 | @AllArgsConstructor
26 | @TableName("sys_role_menu")
27 | public class SysRoleMenu {
28 |
29 | private Long roleId;
30 |
31 | private Long menuId;
32 |
33 | }
34 |
--------------------------------------------------------------------------------
/macula-cloud-system/src/main/java/dev/macula/cloud/system/pojo/entity/SysRolePermission.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2023 Macula
3 | * macula.dev, China
4 | *
5 | * Licensed under the Apache License, Version 2.0 (the "License");
6 | * you may not use this file except in compliance with the License.
7 | * You may obtain a copy of the License at
8 | *
9 | * http://www.apache.org/licenses/LICENSE-2.0
10 | *
11 | * Unless required by applicable law or agreed to in writing, software
12 | * distributed under the License is distributed on an "AS IS" BASIS,
13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | * See the License for the specific language governing permissions and
15 | * limitations under the License.
16 | */
17 |
18 | package dev.macula.cloud.system.pojo.entity;
19 |
20 | import com.baomidou.mybatisplus.annotation.TableName;
21 | import lombok.AllArgsConstructor;
22 | import lombok.Data;
23 |
24 | @Data
25 | @AllArgsConstructor
26 | @TableName("sys_role_permission")
27 | public class SysRolePermission {
28 | private Long roleId;
29 | private Long permissionId;
30 | }
31 |
--------------------------------------------------------------------------------
/macula-cloud-system/src/main/java/dev/macula/cloud/system/pojo/entity/SysTenantInfo.java:
--------------------------------------------------------------------------------
1 | package dev.macula.cloud.system.pojo.entity;
2 |
3 | import dev.macula.boot.starter.mp.entity.BaseEntity;
4 | import lombok.Data;
5 |
6 | @Data
7 | public class SysTenantInfo extends BaseEntity {
8 |
9 | private String name;
10 |
11 | private String code;
12 |
13 | private String description;
14 |
15 | }
16 |
--------------------------------------------------------------------------------
/macula-cloud-system/src/main/java/dev/macula/cloud/system/pojo/entity/SysTenantUser.java:
--------------------------------------------------------------------------------
1 | package dev.macula.cloud.system.pojo.entity;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Data;
5 |
6 | @Data
7 | @AllArgsConstructor
8 | public class SysTenantUser {
9 | private Long userId;
10 | private Long tenantId;
11 | }
12 |
--------------------------------------------------------------------------------
/macula-cloud-system/src/main/java/dev/macula/cloud/system/pojo/entity/SysUserRole.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2023 Macula
3 | * macula.dev, China
4 | *
5 | * Licensed under the Apache License, Version 2.0 (the "License");
6 | * you may not use this file except in compliance with the License.
7 | * You may obtain a copy of the License at
8 | *
9 | * http://www.apache.org/licenses/LICENSE-2.0
10 | *
11 | * Unless required by applicable law or agreed to in writing, software
12 | * distributed under the License is distributed on an "AS IS" BASIS,
13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | * See the License for the specific language governing permissions and
15 | * limitations under the License.
16 | */
17 |
18 | package dev.macula.cloud.system.pojo.entity;
19 |
20 | import lombok.AllArgsConstructor;
21 | import lombok.Data;
22 | import lombok.experimental.Accessors;
23 |
24 | @Data
25 | @Accessors(chain = true)
26 | @AllArgsConstructor
27 | public class SysUserRole {
28 |
29 | private Long userId;
30 |
31 | private Long roleId;
32 |
33 | }
34 |
--------------------------------------------------------------------------------
/macula-cloud-system/src/main/java/dev/macula/cloud/system/pojo/lombok.config:
--------------------------------------------------------------------------------
1 | config.stopBubbling=true
2 | lombok.equalsAndHashCode.callSuper=call
--------------------------------------------------------------------------------
/macula-cloud-system/src/main/java/dev/macula/cloud/system/service/SysLogService.java:
--------------------------------------------------------------------------------
1 | package dev.macula.cloud.system.service;
2 |
3 | import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
4 | import com.baomidou.mybatisplus.extension.service.IService;
5 | import dev.macula.cloud.system.pojo.entity.SysLog;
6 | import dev.macula.cloud.system.query.LogPageQuery;
7 | import dev.macula.cloud.system.vo.log.AuditLogVO;
8 |
9 | public interface SysLogService extends IService {
10 | /**
11 | * 获取审计日志列表
12 | *
13 | * @param queryParams 查询参数
14 | * @return 审计列表
15 | */
16 | Page listUserPages(LogPageQuery queryParams);
17 |
18 | }
19 |
--------------------------------------------------------------------------------
/macula-cloud-system/src/main/java/dev/macula/cloud/system/service/SysTenantUserService.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2022 Macula
3 | * macula.dev, China
4 | *
5 | * Licensed under the Apache License, Version 2.0 (the "License");
6 | * you may not use this file except in compliance with the License.
7 | * You may obtain a copy of the License at
8 | *
9 | * http://www.apache.org/licenses/LICENSE-2.0
10 | *
11 | * Unless required by applicable law or agreed to in writing, software
12 | * distributed under the License is distributed on an "AS IS" BASIS,
13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | * See the License for the specific language governing permissions and
15 | * limitations under the License.
16 | */
17 |
18 | package dev.macula.cloud.system.service;
19 |
20 | import com.baomidou.mybatisplus.extension.service.IService;
21 | import dev.macula.cloud.system.pojo.entity.SysTenantUser;
22 |
23 | import java.util.Set;
24 |
25 | public interface SysTenantUserService extends IService {
26 |
27 | /**
28 | * 获取我负责的租户id列表
29 | *
30 | * @return 租户ID列表
31 | */
32 | Set getMeTenantIds();
33 | }
34 |
--------------------------------------------------------------------------------
/macula-cloud-system/src/main/java/dev/macula/cloud/system/service/SysUserRoleService.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2023 Macula
3 | * macula.dev, China
4 | *
5 | * Licensed under the Apache License, Version 2.0 (the "License");
6 | * you may not use this file except in compliance with the License.
7 | * You may obtain a copy of the License at
8 | *
9 | * http://www.apache.org/licenses/LICENSE-2.0
10 | *
11 | * Unless required by applicable law or agreed to in writing, software
12 | * distributed under the License is distributed on an "AS IS" BASIS,
13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | * See the License for the specific language governing permissions and
15 | * limitations under the License.
16 | */
17 |
18 | package dev.macula.cloud.system.service;
19 |
20 | import com.baomidou.mybatisplus.extension.service.IService;
21 | import dev.macula.cloud.system.pojo.entity.SysUserRole;
22 |
23 | import java.util.List;
24 |
25 | public interface SysUserRoleService extends IService {
26 |
27 | /**
28 | * 保存用户角色
29 | *
30 | * @param userId 用户ID
31 | * @param roleIds 角色ID集合
32 | */
33 | void saveUserRoles(Long userId, List roleIds);
34 | }
35 |
--------------------------------------------------------------------------------
/macula-cloud-system/src/main/resources/bootstrap.yml:
--------------------------------------------------------------------------------
1 | server:
2 | port: 9081
3 |
4 | spring:
5 | profiles:
6 | active: @profile.active@
7 | application:
8 | name: macula-cloud-system
9 | cloud:
10 | nacos:
11 | username: ${nacos.username}
12 | password: ${nacos.password}
13 | config:
14 | server-addr: ${nacos.config.server-addr}
15 | namespace: ${nacos.config.namespace}
16 | # group:
17 | refresh-enabled: true
18 | file-extension: yml
19 |
20 | # 和环境有关的配置信息,不同环境覆盖此处的配置
21 | nacos:
22 | username: nacos
23 | password: nacos
24 | config:
25 | server-addr: localhost:8848
26 | namespace: MACULA5
27 |
28 | ---
29 | spring:
30 | config:
31 | activate:
32 | on-profile: dev
33 | nacos:
34 | username: maculav5
35 | #password: 请通过启动命令赋予密码
36 | config:
37 | server-addr: 10.94.108.55:8848
38 | namespace: MACULA5
--------------------------------------------------------------------------------
/macula-cloud-task/Dockerfile:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/macula-projects/macula-cloud/62bfbe2a76b96db7b81d9863f11552aef51f100a/macula-cloud-task/Dockerfile
--------------------------------------------------------------------------------
/macula-cloud-task/README.md:
--------------------------------------------------------------------------------
1 | ## 概述
2 |
3 | 基于Macula Task的统一调度中心
--------------------------------------------------------------------------------
/macula-cloud-task/pom.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 | 4.0.0
6 |
7 | macula-cloud
8 | dev.macula.cloud
9 | ${revision}
10 |
11 |
12 | macula-cloud-task
13 |
14 |
--------------------------------------------------------------------------------
/macula-cloud-tinyid/Dockerfile:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/macula-projects/macula-cloud/62bfbe2a76b96db7b81d9863f11552aef51f100a/macula-cloud-tinyid/Dockerfile
--------------------------------------------------------------------------------
/macula-cloud-tinyid/src/main/java/dev/macula/cloud/tinyid/common/Constants.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2023 Macula
3 | * macula.dev, China
4 | *
5 | * Licensed under the Apache License, Version 2.0 (the "License");
6 | * you may not use this file except in compliance with the License.
7 | * You may obtain a copy of the License at
8 | *
9 | * http://www.apache.org/licenses/LICENSE-2.0
10 | *
11 | * Unless required by applicable law or agreed to in writing, software
12 | * distributed under the License is distributed on an "AS IS" BASIS,
13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | * See the License for the specific language governing permissions and
15 | * limitations under the License.
16 | */
17 |
18 | package dev.macula.cloud.tinyid.common;
19 |
20 | /**
21 | * @author du_imba
22 | */
23 | public class Constants {
24 | /**
25 | * 预加载下个号段的百分比
26 | */
27 | public static final int LOADING_PERCENT = 20;
28 | /**
29 | * 重试次数
30 | */
31 | public static final int RETRY = 3;
32 |
33 | private Constants() {
34 |
35 | }
36 |
37 | }
38 |
--------------------------------------------------------------------------------
/macula-cloud-tinyid/src/main/java/dev/macula/cloud/tinyid/dao/TinyIdTokenDAO.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2023 Macula
3 | * macula.dev, China
4 | *
5 | * Licensed under the Apache License, Version 2.0 (the "License");
6 | * you may not use this file except in compliance with the License.
7 | * You may obtain a copy of the License at
8 | *
9 | * http://www.apache.org/licenses/LICENSE-2.0
10 | *
11 | * Unless required by applicable law or agreed to in writing, software
12 | * distributed under the License is distributed on an "AS IS" BASIS,
13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | * See the License for the specific language governing permissions and
15 | * limitations under the License.
16 | */
17 |
18 | package dev.macula.cloud.tinyid.dao;
19 |
20 | import dev.macula.cloud.tinyid.dao.entity.TinyIdToken;
21 |
22 | import java.util.List;
23 |
24 | /**
25 | * @author du_imba
26 | */
27 | public interface TinyIdTokenDAO {
28 | /**
29 | * 查询db中所有的token信息
30 | *
31 | * @return List
32 | */
33 | List selectAll();
34 | }
35 |
--------------------------------------------------------------------------------
/macula-cloud-tinyid/src/main/java/dev/macula/cloud/tinyid/dao/entity/TinyIdToken.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2023 Macula
3 | * macula.dev, China
4 | *
5 | * Licensed under the Apache License, Version 2.0 (the "License");
6 | * you may not use this file except in compliance with the License.
7 | * You may obtain a copy of the License at
8 | *
9 | * http://www.apache.org/licenses/LICENSE-2.0
10 | *
11 | * Unless required by applicable law or agreed to in writing, software
12 | * distributed under the License is distributed on an "AS IS" BASIS,
13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | * See the License for the specific language governing permissions and
15 | * limitations under the License.
16 | */
17 |
18 | package dev.macula.cloud.tinyid.dao.entity;
19 |
20 | import lombok.Data;
21 |
22 | import java.util.Date;
23 |
24 | /**
25 | * @author du_imba
26 | */
27 | @Data
28 | public class TinyIdToken {
29 | private Integer id;
30 |
31 | private String token;
32 |
33 | private String bizType;
34 |
35 | private String remark;
36 |
37 | private Date createTime;
38 |
39 | private Date updateTime;
40 |
41 | }
--------------------------------------------------------------------------------
/macula-cloud-tinyid/src/main/java/dev/macula/cloud/tinyid/service/TinyIdTokenService.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2023 Macula
3 | * macula.dev, China
4 | *
5 | * Licensed under the Apache License, Version 2.0 (the "License");
6 | * you may not use this file except in compliance with the License.
7 | * You may obtain a copy of the License at
8 | *
9 | * http://www.apache.org/licenses/LICENSE-2.0
10 | *
11 | * Unless required by applicable law or agreed to in writing, software
12 | * distributed under the License is distributed on an "AS IS" BASIS,
13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | * See the License for the specific language governing permissions and
15 | * limitations under the License.
16 | */
17 |
18 | package dev.macula.cloud.tinyid.service;
19 |
20 | /**
21 | * @author du_imba
22 | */
23 | public interface TinyIdTokenService {
24 | /**
25 | * 是否有权限
26 | *
27 | * @param bizType 业务类型
28 | * @param token TOKEN
29 | * @return boolean 权限
30 | */
31 | boolean canVisit(String bizType, String token);
32 | }
33 |
--------------------------------------------------------------------------------
/macula-cloud-tinyid/src/main/resources/application.yml:
--------------------------------------------------------------------------------
1 | spring:
2 | datasource:
3 | druid:
4 | master:
5 | url: jdbc:mysql://localhost:3306/macula-tinyid?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8
6 | username: root
7 | password:
8 | initialSize: 2
9 | maxActive: 20
10 | minIdle: 2
11 | maxWait: 10000
12 | servlet:
13 | encoding:
14 | force: true
15 | context-path: /tinyid
16 |
17 | logging:
18 | level:
19 | root: info
20 | dev.macula.cloud: debug
21 | file:
22 | name: ${user.home}/logs/${spring.application.name}/${spring.application.name}.log
--------------------------------------------------------------------------------
/macula-cloud-tinyid/src/main/resources/bootstrap.yml:
--------------------------------------------------------------------------------
1 | server:
2 | port: 9082
3 |
4 | spring:
5 | profiles:
6 | active: @profile.active@
7 | application:
8 | name: macula-cloud-tinyid
9 | cloud:
10 | nacos:
11 | username: ${nacos.username}
12 | password: ${nacos.password}
13 | config:
14 | server-addr: ${nacos.config.server-addr}
15 | namespace: ${nacos.config.namespace}
16 | # group:
17 | refresh-enabled: true
18 | file-extension: yml
19 | nacos:
20 | username: nacos
21 | password: nacos
22 | config:
23 | server-addr: 127.0.0.1:8848
24 | namespace: MACULA5
25 |
26 | ---
27 | spring:
28 | config:
29 | activate:
30 | on-profile: dev
31 | nacos:
32 | username: maculav5
33 | #password: 请通过启动命令赋予密码
34 | config:
35 | server-addr: 10.94.108.55:8848
36 | namespace: MACULA5
--------------------------------------------------------------------------------
/macula-cloud-xxljob/Dockerfile:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/macula-projects/macula-cloud/62bfbe2a76b96db7b81d9863f11552aef51f100a/macula-cloud-xxljob/Dockerfile
--------------------------------------------------------------------------------
/macula-cloud-xxljob/src/main/java/com/xxl/job/admin/MaculaXxlJobAdminApplication.java:
--------------------------------------------------------------------------------
1 | package com.xxl.job.admin;
2 |
3 | import org.springframework.boot.SpringApplication;
4 | import org.springframework.boot.autoconfigure.SpringBootApplication;
5 | import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
6 |
7 | /**
8 | * @author xuxueli 2018-10-28 00:38:13
9 | */
10 | @EnableDiscoveryClient
11 | @SpringBootApplication
12 | public class MaculaXxlJobAdminApplication {
13 |
14 | public static void main(String[] args) {
15 | SpringApplication.run(MaculaXxlJobAdminApplication.class, args);
16 | }
17 |
18 | }
--------------------------------------------------------------------------------
/macula-cloud-xxljob/src/main/java/com/xxl/job/admin/controller/annotation/PermissionLimit.java:
--------------------------------------------------------------------------------
1 | package com.xxl.job.admin.controller.annotation;
2 |
3 | import java.lang.annotation.ElementType;
4 | import java.lang.annotation.Retention;
5 | import java.lang.annotation.RetentionPolicy;
6 | import java.lang.annotation.Target;
7 |
8 | /**
9 | * 权限限制
10 | *
11 | * @author xuxueli 2015-12-12 18:29:02
12 | */
13 | @Target(ElementType.METHOD)
14 | @Retention(RetentionPolicy.RUNTIME)
15 | public @interface PermissionLimit {
16 |
17 | /**
18 | * 登录拦截 (默认拦截)
19 | */
20 | boolean limit() default true;
21 |
22 | /**
23 | * 要求管理员权限
24 | *
25 | * @return
26 | */
27 | boolean adminuser() default false;
28 |
29 | }
--------------------------------------------------------------------------------
/macula-cloud-xxljob/src/main/java/com/xxl/job/admin/controller/interceptor/WebMvcConfig.java:
--------------------------------------------------------------------------------
1 | package com.xxl.job.admin.controller.interceptor;
2 |
3 | import org.springframework.context.annotation.Configuration;
4 | import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
5 | import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
6 |
7 | import javax.annotation.Resource;
8 |
9 | /**
10 | * web mvc config
11 | *
12 | * @author xuxueli 2018-04-02 20:48:20
13 | */
14 | @Configuration
15 | public class WebMvcConfig implements WebMvcConfigurer {
16 |
17 | @Resource
18 | private PermissionInterceptor permissionInterceptor;
19 | @Resource
20 | private CookieInterceptor cookieInterceptor;
21 |
22 | @Override
23 | public void addInterceptors(InterceptorRegistry registry) {
24 | registry.addInterceptor(permissionInterceptor).addPathPatterns("/**");
25 | registry.addInterceptor(cookieInterceptor).addPathPatterns("/**");
26 | }
27 |
28 | }
--------------------------------------------------------------------------------
/macula-cloud-xxljob/src/main/java/com/xxl/job/admin/core/alarm/JobAlarm.java:
--------------------------------------------------------------------------------
1 | package com.xxl.job.admin.core.alarm;
2 |
3 | import com.xxl.job.admin.core.model.XxlJobInfo;
4 | import com.xxl.job.admin.core.model.XxlJobLog;
5 |
6 | /**
7 | * @author xuxueli 2020-01-19
8 | */
9 | public interface JobAlarm {
10 |
11 | /**
12 | * job alarm
13 | *
14 | * @param info
15 | * @param jobLog
16 | * @return
17 | */
18 | public boolean doAlarm(XxlJobInfo info, XxlJobLog jobLog);
19 |
20 | }
21 |
--------------------------------------------------------------------------------
/macula-cloud-xxljob/src/main/java/com/xxl/job/admin/core/exception/XxlJobException.java:
--------------------------------------------------------------------------------
1 | package com.xxl.job.admin.core.exception;
2 |
3 | /**
4 | * @author xuxueli 2019-05-04 23:19:29
5 | */
6 | public class XxlJobException extends RuntimeException {
7 |
8 | public XxlJobException() {
9 | }
10 |
11 | public XxlJobException(String message) {
12 | super(message);
13 | }
14 |
15 | }
16 |
--------------------------------------------------------------------------------
/macula-cloud-xxljob/src/main/java/com/xxl/job/admin/core/model/XxlJobLogReport.java:
--------------------------------------------------------------------------------
1 | package com.xxl.job.admin.core.model;
2 |
3 | import java.util.Date;
4 |
5 | public class XxlJobLogReport {
6 |
7 | private int id;
8 |
9 | private Date triggerDay;
10 |
11 | private int runningCount;
12 | private int sucCount;
13 | private int failCount;
14 |
15 | public int getId() {
16 | return id;
17 | }
18 |
19 | public void setId(int id) {
20 | this.id = id;
21 | }
22 |
23 | public Date getTriggerDay() {
24 | return triggerDay;
25 | }
26 |
27 | public void setTriggerDay(Date triggerDay) {
28 | this.triggerDay = triggerDay;
29 | }
30 |
31 | public int getRunningCount() {
32 | return runningCount;
33 | }
34 |
35 | public void setRunningCount(int runningCount) {
36 | this.runningCount = runningCount;
37 | }
38 |
39 | public int getSucCount() {
40 | return sucCount;
41 | }
42 |
43 | public void setSucCount(int sucCount) {
44 | this.sucCount = sucCount;
45 | }
46 |
47 | public int getFailCount() {
48 | return failCount;
49 | }
50 |
51 | public void setFailCount(int failCount) {
52 | this.failCount = failCount;
53 | }
54 | }
55 |
--------------------------------------------------------------------------------
/macula-cloud-xxljob/src/main/java/com/xxl/job/admin/core/old/RemoteHttpJobBean.java:
--------------------------------------------------------------------------------
1 | package com.xxl.job.admin.core.old;//package com.xxl.job.admin.core.jobbean;
2 | //
3 | //import com.xxl.job.admin.core.thread.JobTriggerPoolHelper;
4 | //import com.xxl.job.admin.core.trigger.TriggerTypeEnum;
5 | //import org.quartz.JobExecutionContext;
6 | //import org.quartz.JobExecutionException;
7 | //import org.quartz.JobKey;
8 | //import org.slf4j.Logger;
9 | //import org.slf4j.LoggerFactory;
10 | //import org.springframework.scheduling.quartz.QuartzJobBean;
11 | //
12 | ///**
13 | // * http job bean
14 | // * “@DisallowConcurrentExecution” disable concurrent, thread size can not be only one, better given more
15 | // * @author xuxueli 2015-12-17 18:20:34
16 | // */
17 | ////@DisallowConcurrentExecution
18 | //public class RemoteHttpJobBean extends QuartzJobBean {
19 | // private static Logger logger = LoggerFactory.getLogger(RemoteHttpJobBean.class);
20 | //
21 | // @Override
22 | // protected void executeInternal(JobExecutionContext context)
23 | // throws JobExecutionException {
24 | //
25 | // // load jobId
26 | // JobKey jobKey = context.getTrigger().getJobKey();
27 | // Integer jobId = Integer.valueOf(jobKey.getName());
28 | //
29 | //
30 | // }
31 | //
32 | //}
--------------------------------------------------------------------------------
/macula-cloud-xxljob/src/main/java/com/xxl/job/admin/core/route/ExecutorRouter.java:
--------------------------------------------------------------------------------
1 | package com.xxl.job.admin.core.route;
2 |
3 | import com.xxl.job.core.biz.model.ReturnT;
4 | import com.xxl.job.core.biz.model.TriggerParam;
5 | import org.slf4j.Logger;
6 | import org.slf4j.LoggerFactory;
7 |
8 | import java.util.List;
9 |
10 | /**
11 | * Created by xuxueli on 17/3/10.
12 | */
13 | public abstract class ExecutorRouter {
14 | protected static Logger logger = LoggerFactory.getLogger(ExecutorRouter.class);
15 |
16 | /**
17 | * route address
18 | *
19 | * @param addressList
20 | * @return ReturnT.content=address
21 | */
22 | public abstract ReturnT route(TriggerParam triggerParam, List addressList);
23 |
24 | }
25 |
--------------------------------------------------------------------------------
/macula-cloud-xxljob/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteFirst.java:
--------------------------------------------------------------------------------
1 | package com.xxl.job.admin.core.route.strategy;
2 |
3 | import com.xxl.job.admin.core.route.ExecutorRouter;
4 | import com.xxl.job.core.biz.model.ReturnT;
5 | import com.xxl.job.core.biz.model.TriggerParam;
6 |
7 | import java.util.List;
8 |
9 | /**
10 | * Created by xuxueli on 17/3/10.
11 | */
12 | public class ExecutorRouteFirst extends ExecutorRouter {
13 |
14 | @Override
15 | public ReturnT route(TriggerParam triggerParam, List addressList) {
16 | return new ReturnT(addressList.get(0));
17 | }
18 |
19 | }
20 |
--------------------------------------------------------------------------------
/macula-cloud-xxljob/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteLast.java:
--------------------------------------------------------------------------------
1 | package com.xxl.job.admin.core.route.strategy;
2 |
3 | import com.xxl.job.admin.core.route.ExecutorRouter;
4 | import com.xxl.job.core.biz.model.ReturnT;
5 | import com.xxl.job.core.biz.model.TriggerParam;
6 |
7 | import java.util.List;
8 |
9 | /**
10 | * Created by xuxueli on 17/3/10.
11 | */
12 | public class ExecutorRouteLast extends ExecutorRouter {
13 |
14 | @Override
15 | public ReturnT route(TriggerParam triggerParam, List addressList) {
16 | return new ReturnT(addressList.get(addressList.size() - 1));
17 | }
18 |
19 | }
20 |
--------------------------------------------------------------------------------
/macula-cloud-xxljob/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteRandom.java:
--------------------------------------------------------------------------------
1 | package com.xxl.job.admin.core.route.strategy;
2 |
3 | import com.xxl.job.admin.core.route.ExecutorRouter;
4 | import com.xxl.job.core.biz.model.ReturnT;
5 | import com.xxl.job.core.biz.model.TriggerParam;
6 |
7 | import java.util.List;
8 | import java.util.Random;
9 |
10 | /**
11 | * Created by xuxueli on 17/3/10.
12 | */
13 | public class ExecutorRouteRandom extends ExecutorRouter {
14 |
15 | private static Random localRandom = new Random();
16 |
17 | @Override
18 | public ReturnT route(TriggerParam triggerParam, List addressList) {
19 | String address = addressList.get(localRandom.nextInt(addressList.size()));
20 | return new ReturnT(address);
21 | }
22 |
23 | }
24 |
--------------------------------------------------------------------------------
/macula-cloud-xxljob/src/main/java/com/xxl/job/admin/core/scheduler/MisfireStrategyEnum.java:
--------------------------------------------------------------------------------
1 | package com.xxl.job.admin.core.scheduler;
2 |
3 | import com.xxl.job.admin.core.util.I18nUtil;
4 |
5 | /**
6 | * @author xuxueli 2020-10-29 21:11:23
7 | */
8 | public enum MisfireStrategyEnum {
9 |
10 | /**
11 | * do nothing
12 | */
13 | DO_NOTHING(I18nUtil.getString("misfire_strategy_do_nothing")),
14 |
15 | /**
16 | * fire once now
17 | */
18 | FIRE_ONCE_NOW(I18nUtil.getString("misfire_strategy_fire_once_now"));
19 |
20 | private String title;
21 |
22 | MisfireStrategyEnum(String title) {
23 | this.title = title;
24 | }
25 |
26 | public String getTitle() {
27 | return title;
28 | }
29 |
30 | public static MisfireStrategyEnum match(String name, MisfireStrategyEnum defaultItem) {
31 | for (MisfireStrategyEnum item : MisfireStrategyEnum.values()) {
32 | if (item.name().equals(name)) {
33 | return item;
34 | }
35 | }
36 | return defaultItem;
37 | }
38 |
39 | }
40 |
--------------------------------------------------------------------------------
/macula-cloud-xxljob/src/main/java/com/xxl/job/admin/core/scheduler/ScheduleTypeEnum.java:
--------------------------------------------------------------------------------
1 | package com.xxl.job.admin.core.scheduler;
2 |
3 | import com.xxl.job.admin.core.util.I18nUtil;
4 |
5 | /**
6 | * @author xuxueli 2020-10-29 21:11:23
7 | */
8 | public enum ScheduleTypeEnum {
9 |
10 | NONE(I18nUtil.getString("schedule_type_none")),
11 |
12 | /**
13 | * schedule by cron
14 | */
15 | CRON(I18nUtil.getString("schedule_type_cron")),
16 |
17 | /**
18 | * schedule by fixed rate (in seconds)
19 | */
20 | FIX_RATE(I18nUtil.getString("schedule_type_fix_rate")),
21 |
22 | /**
23 | * schedule by fix delay (in seconds), after the last time
24 | */
25 | /*FIX_DELAY(I18nUtil.getString("schedule_type_fix_delay"))*/;
26 |
27 | private String title;
28 |
29 | ScheduleTypeEnum(String title) {
30 | this.title = title;
31 | }
32 |
33 | public String getTitle() {
34 | return title;
35 | }
36 |
37 | public static ScheduleTypeEnum match(String name, ScheduleTypeEnum defaultItem) {
38 | for (ScheduleTypeEnum item : ScheduleTypeEnum.values()) {
39 | if (item.name().equals(name)) {
40 | return item;
41 | }
42 | }
43 | return defaultItem;
44 | }
45 |
46 | }
47 |
--------------------------------------------------------------------------------
/macula-cloud-xxljob/src/main/java/com/xxl/job/admin/core/trigger/TriggerTypeEnum.java:
--------------------------------------------------------------------------------
1 | package com.xxl.job.admin.core.trigger;
2 |
3 | import com.xxl.job.admin.core.util.I18nUtil;
4 |
5 | /**
6 | * trigger type enum
7 | *
8 | * @author xuxueli 2018-09-16 04:56:41
9 | */
10 | public enum TriggerTypeEnum {
11 |
12 | MANUAL(I18nUtil.getString("jobconf_trigger_type_manual")), CRON(I18nUtil.getString("jobconf_trigger_type_cron")),
13 | RETRY(I18nUtil.getString("jobconf_trigger_type_retry")), PARENT(I18nUtil.getString("jobconf_trigger_type_parent")),
14 | API(I18nUtil.getString("jobconf_trigger_type_api")), MISFIRE(I18nUtil.getString("jobconf_trigger_type_misfire"));
15 |
16 | private TriggerTypeEnum(String title) {
17 | this.title = title;
18 | }
19 |
20 | private String title;
21 |
22 | public String getTitle() {
23 | return title;
24 | }
25 |
26 | }
27 |
--------------------------------------------------------------------------------
/macula-cloud-xxljob/src/main/java/com/xxl/job/admin/core/util/FtlUtil.java:
--------------------------------------------------------------------------------
1 | package com.xxl.job.admin.core.util;
2 |
3 | import freemarker.ext.beans.BeansWrapper;
4 | import freemarker.ext.beans.BeansWrapperBuilder;
5 | import freemarker.template.Configuration;
6 | import freemarker.template.TemplateHashModel;
7 | import org.slf4j.Logger;
8 | import org.slf4j.LoggerFactory;
9 |
10 | /**
11 | * ftl util
12 | *
13 | * @author xuxueli 2018-01-17 20:37:48
14 | */
15 | public class FtlUtil {
16 | private static Logger logger = LoggerFactory.getLogger(FtlUtil.class);
17 |
18 | private static BeansWrapper wrapper =
19 | new BeansWrapperBuilder(Configuration.DEFAULT_INCOMPATIBLE_IMPROVEMENTS).build();
20 | //BeansWrapper.getDefaultInstance();
21 |
22 | public static TemplateHashModel generateStaticModel(String packageName) {
23 | try {
24 | TemplateHashModel staticModels = wrapper.getStaticModels();
25 | TemplateHashModel fileStatics = (TemplateHashModel)staticModels.get(packageName);
26 | return fileStatics;
27 | } catch (Exception e) {
28 | logger.error(e.getMessage(), e);
29 | }
30 | return null;
31 | }
32 |
33 | }
34 |
--------------------------------------------------------------------------------
/macula-cloud-xxljob/src/main/java/com/xxl/job/admin/dao/XxlJobGroupDao.java:
--------------------------------------------------------------------------------
1 | package com.xxl.job.admin.dao;
2 |
3 | import com.xxl.job.admin.core.model.XxlJobGroup;
4 | import org.apache.ibatis.annotations.Mapper;
5 | import org.apache.ibatis.annotations.Param;
6 |
7 | import java.util.List;
8 |
9 | /**
10 | * Created by xuxueli on 16/9/30.
11 | */
12 | @Mapper
13 | public interface XxlJobGroupDao {
14 |
15 | public List findAll();
16 |
17 | public List findByAddressType(@Param("addressType") int addressType);
18 |
19 | public int save(XxlJobGroup xxlJobGroup);
20 |
21 | public int update(XxlJobGroup xxlJobGroup);
22 |
23 | public int remove(@Param("id") int id);
24 |
25 | public XxlJobGroup load(@Param("id") int id);
26 |
27 | public List pageList(@Param("offset") int offset, @Param("pagesize") int pagesize,
28 | @Param("appname") String appname, @Param("title") String title);
29 |
30 | public int pageListCount(@Param("offset") int offset, @Param("pagesize") int pagesize,
31 | @Param("appname") String appname, @Param("title") String title);
32 |
33 | }
34 |
--------------------------------------------------------------------------------
/macula-cloud-xxljob/src/main/java/com/xxl/job/admin/dao/XxlJobLogGlueDao.java:
--------------------------------------------------------------------------------
1 | package com.xxl.job.admin.dao;
2 |
3 | import com.xxl.job.admin.core.model.XxlJobLogGlue;
4 | import org.apache.ibatis.annotations.Mapper;
5 | import org.apache.ibatis.annotations.Param;
6 |
7 | import java.util.List;
8 |
9 | /**
10 | * job log for glue
11 | *
12 | * @author xuxueli 2016-5-19 18:04:56
13 | */
14 | @Mapper
15 | public interface XxlJobLogGlueDao {
16 |
17 | public int save(XxlJobLogGlue xxlJobLogGlue);
18 |
19 | public List findByJobId(@Param("jobId") int jobId);
20 |
21 | public int removeOld(@Param("jobId") int jobId, @Param("limit") int limit);
22 |
23 | public int deleteByJobId(@Param("jobId") int jobId);
24 |
25 | }
26 |
--------------------------------------------------------------------------------
/macula-cloud-xxljob/src/main/java/com/xxl/job/admin/dao/XxlJobLogReportDao.java:
--------------------------------------------------------------------------------
1 | package com.xxl.job.admin.dao;
2 |
3 | import com.xxl.job.admin.core.model.XxlJobLogReport;
4 | import org.apache.ibatis.annotations.Mapper;
5 | import org.apache.ibatis.annotations.Param;
6 |
7 | import java.util.Date;
8 | import java.util.List;
9 |
10 | /**
11 | * job log
12 | *
13 | * @author xuxueli 2019-11-22
14 | */
15 | @Mapper
16 | public interface XxlJobLogReportDao {
17 |
18 | public int save(XxlJobLogReport xxlJobLogReport);
19 |
20 | public int update(XxlJobLogReport xxlJobLogReport);
21 |
22 | public List queryLogReport(@Param("triggerDayFrom") Date triggerDayFrom,
23 | @Param("triggerDayTo") Date triggerDayTo);
24 |
25 | public XxlJobLogReport queryLogReportTotal();
26 |
27 | }
28 |
--------------------------------------------------------------------------------
/macula-cloud-xxljob/src/main/java/com/xxl/job/admin/dao/XxlJobUserDao.java:
--------------------------------------------------------------------------------
1 | package com.xxl.job.admin.dao;
2 |
3 | import com.xxl.job.admin.core.model.XxlJobUser;
4 | import org.apache.ibatis.annotations.Mapper;
5 | import org.apache.ibatis.annotations.Param;
6 |
7 | import java.util.List;
8 |
9 | /**
10 | * @author xuxueli 2019-05-04 16:44:59
11 | */
12 | @Mapper
13 | public interface XxlJobUserDao {
14 |
15 | public List pageList(@Param("offset") int offset, @Param("pagesize") int pagesize,
16 | @Param("username") String username, @Param("role") int role);
17 |
18 | public int pageListCount(@Param("offset") int offset, @Param("pagesize") int pagesize,
19 | @Param("username") String username, @Param("role") int role);
20 |
21 | public XxlJobUser loadByUserName(@Param("username") String username);
22 |
23 | public int save(XxlJobUser xxlJobUser);
24 |
25 | public int update(XxlJobUser xxlJobUser);
26 |
27 | public int delete(@Param("id") int id);
28 |
29 | }
30 |
--------------------------------------------------------------------------------
/macula-cloud-xxljob/src/main/java/com/xxl/job/admin/service/impl/AdminBizImpl.java:
--------------------------------------------------------------------------------
1 | package com.xxl.job.admin.service.impl;
2 |
3 | import com.xxl.job.admin.core.thread.JobCompleteHelper;
4 | import com.xxl.job.admin.core.thread.JobRegistryHelper;
5 | import com.xxl.job.core.biz.AdminBiz;
6 | import com.xxl.job.core.biz.model.HandleCallbackParam;
7 | import com.xxl.job.core.biz.model.RegistryParam;
8 | import com.xxl.job.core.biz.model.ReturnT;
9 | import org.springframework.stereotype.Service;
10 |
11 | import java.util.List;
12 |
13 | /**
14 | * @author xuxueli 2017-07-27 21:54:20
15 | */
16 | @Service
17 | public class AdminBizImpl implements AdminBiz {
18 |
19 | @Override
20 | public ReturnT callback(List callbackParamList) {
21 | return JobCompleteHelper.getInstance().callback(callbackParamList);
22 | }
23 |
24 | @Override
25 | public ReturnT registry(RegistryParam registryParam) {
26 | return JobRegistryHelper.getInstance().registry(registryParam);
27 | }
28 |
29 | @Override
30 | public ReturnT registryRemove(RegistryParam registryParam) {
31 | return JobRegistryHelper.getInstance().registryRemove(registryParam);
32 | }
33 |
34 | }
35 |
--------------------------------------------------------------------------------
/macula-cloud-xxljob/src/main/resources/bootstrap.yml:
--------------------------------------------------------------------------------
1 | server:
2 | port: 9084
3 |
4 | spring:
5 | profiles:
6 | active: @profile.active@
7 | application:
8 | name: macula-cloud-xxljob
9 | cloud:
10 | nacos:
11 | username: ${nacos.username}
12 | password: ${nacos.password}
13 | config:
14 | server-addr: ${nacos.config.server-addr}
15 | namespace: ${nacos.config.namespace}
16 | # group:
17 | refresh-enabled: true
18 | file-extension: yml
19 |
20 | # 和环境有关的配置信息,不同环境覆盖此处的配置
21 | nacos:
22 | username: nacos
23 | password: nacos
24 | config:
25 | server-addr: 127.0.0.1:8848
26 | namespace: MACULA5
27 |
28 | ---
29 | spring:
30 | config:
31 | activate:
32 | on-profile: dev
33 | nacos:
34 | username: maculav5
35 | #password: 请通过启动命令赋予密码
36 | config:
37 | server-addr: 10.94.108.55:8848
38 | namespace: MACULA5
--------------------------------------------------------------------------------
/macula-cloud-xxljob/src/main/resources/static/adminlte/bower_components/Ionicons/fonts/ionicons.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/macula-projects/macula-cloud/62bfbe2a76b96db7b81d9863f11552aef51f100a/macula-cloud-xxljob/src/main/resources/static/adminlte/bower_components/Ionicons/fonts/ionicons.eot
--------------------------------------------------------------------------------
/macula-cloud-xxljob/src/main/resources/static/adminlte/bower_components/Ionicons/fonts/ionicons.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/macula-projects/macula-cloud/62bfbe2a76b96db7b81d9863f11552aef51f100a/macula-cloud-xxljob/src/main/resources/static/adminlte/bower_components/Ionicons/fonts/ionicons.ttf
--------------------------------------------------------------------------------
/macula-cloud-xxljob/src/main/resources/static/adminlte/bower_components/Ionicons/fonts/ionicons.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/macula-projects/macula-cloud/62bfbe2a76b96db7b81d9863f11552aef51f100a/macula-cloud-xxljob/src/main/resources/static/adminlte/bower_components/Ionicons/fonts/ionicons.woff
--------------------------------------------------------------------------------
/macula-cloud-xxljob/src/main/resources/static/adminlte/bower_components/bootstrap/fonts/glyphicons-halflings-regular.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/macula-projects/macula-cloud/62bfbe2a76b96db7b81d9863f11552aef51f100a/macula-cloud-xxljob/src/main/resources/static/adminlte/bower_components/bootstrap/fonts/glyphicons-halflings-regular.eot
--------------------------------------------------------------------------------
/macula-cloud-xxljob/src/main/resources/static/adminlte/bower_components/bootstrap/fonts/glyphicons-halflings-regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/macula-projects/macula-cloud/62bfbe2a76b96db7b81d9863f11552aef51f100a/macula-cloud-xxljob/src/main/resources/static/adminlte/bower_components/bootstrap/fonts/glyphicons-halflings-regular.ttf
--------------------------------------------------------------------------------
/macula-cloud-xxljob/src/main/resources/static/adminlte/bower_components/bootstrap/fonts/glyphicons-halflings-regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/macula-projects/macula-cloud/62bfbe2a76b96db7b81d9863f11552aef51f100a/macula-cloud-xxljob/src/main/resources/static/adminlte/bower_components/bootstrap/fonts/glyphicons-halflings-regular.woff
--------------------------------------------------------------------------------
/macula-cloud-xxljob/src/main/resources/static/adminlte/bower_components/bootstrap/fonts/glyphicons-halflings-regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/macula-projects/macula-cloud/62bfbe2a76b96db7b81d9863f11552aef51f100a/macula-cloud-xxljob/src/main/resources/static/adminlte/bower_components/bootstrap/fonts/glyphicons-halflings-regular.woff2
--------------------------------------------------------------------------------
/macula-cloud-xxljob/src/main/resources/static/adminlte/bower_components/font-awesome/fonts/FontAwesome.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/macula-projects/macula-cloud/62bfbe2a76b96db7b81d9863f11552aef51f100a/macula-cloud-xxljob/src/main/resources/static/adminlte/bower_components/font-awesome/fonts/FontAwesome.otf
--------------------------------------------------------------------------------
/macula-cloud-xxljob/src/main/resources/static/adminlte/bower_components/font-awesome/fonts/fontawesome-webfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/macula-projects/macula-cloud/62bfbe2a76b96db7b81d9863f11552aef51f100a/macula-cloud-xxljob/src/main/resources/static/adminlte/bower_components/font-awesome/fonts/fontawesome-webfont.eot
--------------------------------------------------------------------------------
/macula-cloud-xxljob/src/main/resources/static/adminlte/bower_components/font-awesome/fonts/fontawesome-webfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/macula-projects/macula-cloud/62bfbe2a76b96db7b81d9863f11552aef51f100a/macula-cloud-xxljob/src/main/resources/static/adminlte/bower_components/font-awesome/fonts/fontawesome-webfont.ttf
--------------------------------------------------------------------------------
/macula-cloud-xxljob/src/main/resources/static/adminlte/bower_components/font-awesome/fonts/fontawesome-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/macula-projects/macula-cloud/62bfbe2a76b96db7b81d9863f11552aef51f100a/macula-cloud-xxljob/src/main/resources/static/adminlte/bower_components/font-awesome/fonts/fontawesome-webfont.woff
--------------------------------------------------------------------------------
/macula-cloud-xxljob/src/main/resources/static/adminlte/bower_components/font-awesome/fonts/fontawesome-webfont.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/macula-projects/macula-cloud/62bfbe2a76b96db7b81d9863f11552aef51f100a/macula-cloud-xxljob/src/main/resources/static/adminlte/bower_components/font-awesome/fonts/fontawesome-webfont.woff2
--------------------------------------------------------------------------------
/macula-cloud-xxljob/src/main/resources/static/adminlte/plugins/iCheck/square/blue.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/macula-projects/macula-cloud/62bfbe2a76b96db7b81d9863f11552aef51f100a/macula-cloud-xxljob/src/main/resources/static/adminlte/plugins/iCheck/square/blue.png
--------------------------------------------------------------------------------
/macula-cloud-xxljob/src/main/resources/static/adminlte/plugins/iCheck/square/blue@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/macula-projects/macula-cloud/62bfbe2a76b96db7b81d9863f11552aef51f100a/macula-cloud-xxljob/src/main/resources/static/adminlte/plugins/iCheck/square/blue@2x.png
--------------------------------------------------------------------------------
/macula-cloud-xxljob/src/main/resources/static/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/macula-projects/macula-cloud/62bfbe2a76b96db7b81d9863f11552aef51f100a/macula-cloud-xxljob/src/main/resources/static/favicon.ico
--------------------------------------------------------------------------------
/macula-cloud-xxljob/src/main/resources/static/plugins/codemirror/addon/hint/show-hint.css:
--------------------------------------------------------------------------------
1 | .CodeMirror-hints {
2 | position: absolute;
3 | z-index: 10;
4 | overflow: hidden;
5 | list-style: none;
6 |
7 | margin: 0;
8 | padding: 2px;
9 |
10 | -webkit-box-shadow: 2px 3px 5px rgba(0, 0, 0, .2);
11 | -moz-box-shadow: 2px 3px 5px rgba(0, 0, 0, .2);
12 | box-shadow: 2px 3px 5px rgba(0, 0, 0, .2);
13 | border-radius: 3px;
14 | border: 1px solid silver;
15 |
16 | background: white;
17 | font-size: 90%;
18 | font-family: monospace;
19 |
20 | max-height: 20em;
21 | overflow-y: auto;
22 | }
23 |
24 | .CodeMirror-hint {
25 | margin: 0;
26 | padding: 0 4px;
27 | border-radius: 2px;
28 | white-space: pre;
29 | color: black;
30 | cursor: pointer;
31 | }
32 |
33 | li.CodeMirror-hint-active {
34 | background: #08f;
35 | color: white;
36 | }
37 |
--------------------------------------------------------------------------------
/macula-cloud-xxljob/src/main/resources/static/plugins/layer/theme/default/icon-ext.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/macula-projects/macula-cloud/62bfbe2a76b96db7b81d9863f11552aef51f100a/macula-cloud-xxljob/src/main/resources/static/plugins/layer/theme/default/icon-ext.png
--------------------------------------------------------------------------------
/macula-cloud-xxljob/src/main/resources/static/plugins/layer/theme/default/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/macula-projects/macula-cloud/62bfbe2a76b96db7b81d9863f11552aef51f100a/macula-cloud-xxljob/src/main/resources/static/plugins/layer/theme/default/icon.png
--------------------------------------------------------------------------------
/macula-cloud-xxljob/src/main/resources/static/plugins/layer/theme/default/loading-0.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/macula-projects/macula-cloud/62bfbe2a76b96db7b81d9863f11552aef51f100a/macula-cloud-xxljob/src/main/resources/static/plugins/layer/theme/default/loading-0.gif
--------------------------------------------------------------------------------
/macula-cloud-xxljob/src/main/resources/static/plugins/layer/theme/default/loading-1.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/macula-projects/macula-cloud/62bfbe2a76b96db7b81d9863f11552aef51f100a/macula-cloud-xxljob/src/main/resources/static/plugins/layer/theme/default/loading-1.gif
--------------------------------------------------------------------------------
/macula-cloud-xxljob/src/main/resources/static/plugins/layer/theme/default/loading-2.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/macula-projects/macula-cloud/62bfbe2a76b96db7b81d9863f11552aef51f100a/macula-cloud-xxljob/src/main/resources/static/plugins/layer/theme/default/loading-2.gif
--------------------------------------------------------------------------------
/macula-cloud-xxljob/src/main/resources/templates/common/common.exception.ftl:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Error
6 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
System Error
36 |
${exceptionMsg}
37 |
Back
38 |
39 |
40 |
41 |
42 |