Explorar el Código

:sparkles: 添加新特性。登录成功、失败 接口

冷冷 hace 6 años
padre
commit
c5bf52b8ab

+ 45 - 0
pigx-auth/src/main/java/com/pig4cloud/pigx/auth/handle/PigxAuthenticationFailureEvenHandler.java

@@ -0,0 +1,45 @@
+/*
+ *    Copyright (c) 2018-2025, lengleng All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * Neither the name of the pig4cloud.com developer nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ * Author: lengleng (wangiegie@gmail.com)
+ */
+
+package com.pig4cloud.pigx.auth.handle;
+
+import com.pig4cloud.pigx.common.security.handle.AuthenticationFailureEvenHandler;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.security.core.Authentication;
+import org.springframework.security.core.AuthenticationException;
+import org.springframework.stereotype.Component;
+
+/**
+ * @author lengleng
+ * @date 2018/10/8
+ */
+@Slf4j
+@Component
+public class PigxAuthenticationFailureEvenHandler extends AuthenticationFailureEvenHandler {
+
+	/**
+	 * 处理登录成功方法
+	 * <p>
+	 *
+	 * @param authenticationException 登录的authentication 对象
+	 * @param authentication          登录的authenticationException 对象
+	 */
+	@Override
+	public void handle(AuthenticationException authenticationException, Authentication authentication) {
+		log.info("用户:{} 登录失败,异常:{}", authentication.getPrincipal(), authenticationException.getLocalizedMessage());
+	}
+}

+ 44 - 0
pigx-auth/src/main/java/com/pig4cloud/pigx/auth/handle/PigxAuthenticationSuccessEventHandler.java

@@ -0,0 +1,44 @@
+/*
+ *    Copyright (c) 2018-2025, lengleng All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * Neither the name of the pig4cloud.com developer nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ * Author: lengleng (wangiegie@gmail.com)
+ */
+
+package com.pig4cloud.pigx.auth.handle;
+
+import com.pig4cloud.pigx.common.security.handle.AuthenticationSuccessEventHandler;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.security.core.Authentication;
+import org.springframework.stereotype.Component;
+
+/**
+ * @author lengleng
+ * @date 2018/10/8
+ */
+@Slf4j
+@Component
+public class PigxAuthenticationSuccessEventHandler extends AuthenticationSuccessEventHandler {
+
+	/**
+	 * 处理登录成功方法
+	 * <p>
+	 * 获取到登录的authentication 对象
+	 *
+	 * @param authentication 登录对象
+	 */
+	@Override
+	public void handle(Authentication authentication) {
+		log.info("用户:{} 登录成功", authentication.getPrincipal());
+	}
+}

+ 53 - 0
pigx-common/pigx-common-security/src/main/java/com/pig4cloud/pigx/common/security/handle/AuthenticationFailureEvenHandler.java

@@ -0,0 +1,53 @@
+/*
+ *    Copyright (c) 2018-2025, lengleng All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * Neither the name of the pig4cloud.com developer nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ * Author: lengleng (wangiegie@gmail.com)
+ */
+
+package com.pig4cloud.pigx.common.security.handle;
+
+import org.springframework.context.ApplicationListener;
+import org.springframework.security.authentication.event.AbstractAuthenticationFailureEvent;
+import org.springframework.security.core.Authentication;
+import org.springframework.security.core.AuthenticationException;
+
+/**
+ * @author lengleng
+ * @date 2018/10/8
+ * 认证失败事件处理器
+ */
+public abstract class AuthenticationFailureEvenHandler implements ApplicationListener<AbstractAuthenticationFailureEvent> {
+
+	/**
+	 * Handle an application event.
+	 *
+	 * @param event the event to respond to
+	 */
+	@Override
+	public void onApplicationEvent(AbstractAuthenticationFailureEvent event) {
+		AuthenticationException authenticationException = event.getException();
+		Authentication authentication = (Authentication) event.getSource();
+
+		handle(authenticationException, authentication);
+	}
+
+	/**
+	 * 处理登录成功方法
+	 * <p>
+	 *
+	 * @param authenticationException 登录的authentication 对象
+	 * @param authentication          登录的authenticationException 对象
+	 */
+	public abstract void handle(AuthenticationException authenticationException, Authentication authentication);
+}

+ 49 - 0
pigx-common/pigx-common-security/src/main/java/com/pig4cloud/pigx/common/security/handle/AuthenticationSuccessEventHandler.java

@@ -0,0 +1,49 @@
+/*
+ *    Copyright (c) 2018-2025, lengleng All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * Neither the name of the pig4cloud.com developer nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ * Author: lengleng (wangiegie@gmail.com)
+ */
+
+package com.pig4cloud.pigx.common.security.handle;
+
+import org.springframework.context.ApplicationListener;
+import org.springframework.security.authentication.event.AuthenticationSuccessEvent;
+import org.springframework.security.core.Authentication;
+
+/**
+ * @author lengleng
+ * @date 2018/10/8
+ * 认证成功事件处理器
+ */
+public abstract class AuthenticationSuccessEventHandler implements ApplicationListener<AuthenticationSuccessEvent> {
+	/**
+	 * Handle an application event.
+	 *
+	 * @param event the event to respond to
+	 */
+	@Override
+	public void onApplicationEvent(AuthenticationSuccessEvent event) {
+		Authentication authentication = (Authentication) event.getSource();
+		handle(authentication);
+	}
+
+	/**
+	 * 处理登录成功方法
+	 * <p>
+	 * 获取到登录的authentication 对象
+	 *
+	 * @param authentication 登录对象
+	 */
+	public abstract void handle(Authentication authentication);
+}