diff --git a/src/main/java/com/jsl/oa/JslOrganizeInternalOaApplication.java b/src/main/java/com/jsl/oa/JslOrganizeInternalOaApplication.java index 66322b9..348a56d 100755 --- a/src/main/java/com/jsl/oa/JslOrganizeInternalOaApplication.java +++ b/src/main/java/com/jsl/oa/JslOrganizeInternalOaApplication.java @@ -4,9 +4,22 @@ import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.scheduling.annotation.EnableScheduling; +/** + * 主类 + * + * @since v1.0.0-SNAPSHOT + * @version 1.0.0-SNAPSHOT + * @author xiao_lfeng + */ @SpringBootApplication @EnableScheduling public class JslOrganizeInternalOaApplication { + + /** + * 入口 + * + * @param args 参数 + */ public static void main(String[] args) { SpringApplication.run(JslOrganizeInternalOaApplication.class, args); } diff --git a/src/main/java/com/jsl/oa/JslOrganizeInternalOaRunnerApplication.java b/src/main/java/com/jsl/oa/JslOrganizeInternalOaRunnerApplication.java index 66bde00..a9dbd44 100644 --- a/src/main/java/com/jsl/oa/JslOrganizeInternalOaRunnerApplication.java +++ b/src/main/java/com/jsl/oa/JslOrganizeInternalOaRunnerApplication.java @@ -21,6 +21,7 @@ import java.sql.Timestamp; * @see org.springframework.boot.SpringApplication * @see org.springframework.boot.autoconfigure.SpringBootApplication * @since v1.1.0 + * @author xiaofeng */ @Component @RequiredArgsConstructor @@ -28,6 +29,12 @@ public class JslOrganizeInternalOaRunnerApplication implements SmartInitializing private final Gson gson = new Gson(); private final InfoMapper infoMapper; + + /** + *
+ * 此方法使用SMTP协议设置邮件发送器,启用SMTP认证和STARTTLS。同时,为了便于故障排除, + * 开启了邮件调试功能,以记录邮件发送过程。配置细节如主机、端口、用户名和密码根据应用程序的属性进行设置。 + *
+ * + * @return 配置好的JavaMailSender实例,可用于发送邮件。 + */ @Bean public JavaMailSender javaMailSender() { JavaMailSenderImpl mailSender = new JavaMailSenderImpl(); mailSender.setDefaultEncoding("UTF-8"); mailSender.setHost(emailHost); - mailSender.setPort(25); // 你的邮件服务器端口 + mailSender.setPort(25); mailSender.setUsername(emailUsername); mailSender.setPassword(emailPassword); diff --git a/src/main/java/com/jsl/oa/config/filter/CorsFilter.java b/src/main/java/com/jsl/oa/config/filter/CorsFilter.java index 4839883..d25d4d0 100644 --- a/src/main/java/com/jsl/oa/config/filter/CorsFilter.java +++ b/src/main/java/com/jsl/oa/config/filter/CorsFilter.java @@ -8,6 +8,7 @@ import javax.servlet.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; + /** *+ * doGetAuthenticationInfo()方法负责验证用户, + * doGetAuthorizationInfo()方法负责检索用户的授权信息。 + * + * @author jsl + */ public class MyRealm extends AuthorizingRealm { /** - * 授权 + * 这将负责验证用户。 + * 它接受一个AuthenticationToken作为参数,该参数表示用户的��据, + * 并返回一个AuthenticationInfo对象,该对象包含用户的身份验证详细信息。 + *
+ * 在这种实现中,该方法总是返回null,表示身份验证不受支持。 + * 这可以在子类中被重写以支持身份验证。 * - * @return 授权信息 - */ - @Override - protected AuthorizationInfo doGetAuthorizationInfo(@NotNull PrincipalCollection principals) { - return null; - } - - - /** - * 认证 - * - * @param authenticationToken 令牌 - * @return 认证信息 - * @throws AuthenticationException 认证异常 + * @param authenticationToken 用户的��据 + * @return null,表示身份验证不受支持 */ @Override protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authenticationToken) { return null; } + + /** + * 这将负责检索用户的授权信息。 + * 它接受一个PrincipalCollection作为参数,该参数表示用户的主体, + * 并返回一个AuthorizationInfo对象,该对象包含用户的授权详细信息。 + *
+ * 在这种实现中,该方法总是返回null,表示授权不受支持。
+ * 这可以在子类中被重写以支持授权。
+ *
+ * @param principals 用户的主体
+ * @return null,表示授权不受支持
+ */
+ @Override
+ protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) {
+ return null;
+ }
+
}
diff --git a/src/main/java/com/jsl/oa/config/shiro/ShiroConfiguration.java b/src/main/java/com/jsl/oa/config/shiro/ShiroConfiguration.java
index 116998e..3a11cb0 100755
--- a/src/main/java/com/jsl/oa/config/shiro/ShiroConfiguration.java
+++ b/src/main/java/com/jsl/oa/config/shiro/ShiroConfiguration.java
@@ -2,7 +2,6 @@ package com.jsl.oa.config.shiro;
import com.jsl.oa.config.filter.CorsFilter;
import com.jsl.oa.config.filter.JwtFilter;
-import com.jsl.oa.services.UserService;
import lombok.RequiredArgsConstructor;
import org.apache.shiro.spring.web.ShiroFilterFactoryBean;
import org.apache.shiro.web.mgt.DefaultWebSecurityManager;
@@ -14,12 +13,25 @@ import javax.servlet.Filter;
import java.util.LinkedHashMap;
import java.util.Map;
+/**
+ * 这是一个Shiro的Realm,它负责身份验证和授权。
+ * 它扩展了AuthorizingRealm类,该类提供了默认的授权和身份验证实现。
+ *
+ * @since v1.0.0-SNAPSHOT
+ * @version v1.0.0-SNAPSHOT
+ * @author xiao_lfeng
+ */
@Configuration
@RequiredArgsConstructor
public class ShiroConfiguration {
- private final UserService userService;
-
+ /**
+ * 配置Shiro过滤器工厂Bean,设置安全管理器、过滤器规则以及自定义过滤器。
+ * 此方法用于配置Shiro的安全管理器,定义URL模式的过滤器链,并添加自定义的JWT和CORS过滤器来处理认证和跨域请求。
+ *
+ * @param securityManager 安全管理器,由Shiro过滤器工厂Bean使用。
+ * @return 配置好的ShiroFilterFactoryBean实例。
+ */
@Bean
public ShiroFilterFactoryBean shiroFilterFactoryBean(DefaultWebSecurityManager securityManager) {
ShiroFilterFactoryBean shiroFilterFactoryBean = new ShiroFilterFactoryBean();
@@ -27,10 +39,9 @@ public class ShiroConfiguration {
// 配置过滤器规则
Map