pamapi/src/doc/sql/20220217_w.sql | ●●●●● 修補檔 | 檢視 | 原始 | 究查 | 歷程 | |
pamapi/src/main/java/com/pollex/pam/domain/Consultant.java | ●●●●● 修補檔 | 檢視 | 原始 | 究查 | 歷程 | |
pamapi/src/main/java/com/pollex/pam/enums/ConsultantStatusEnum.java | ●●●●● 修補檔 | 檢視 | 原始 | 究查 | 歷程 | |
pamapi/src/main/java/com/pollex/pam/security/provider/EServiceAuthenticationProvider.java | ●●●●● 修補檔 | 檢視 | 原始 | 究查 | 歷程 | |
pamapi/src/main/java/com/pollex/pam/web/rest/errors/ConsultantDisableException.java | ●●●●● 修補檔 | 檢視 | 原始 | 究查 | 歷程 |
pamapi/src/doc/sql/20220217_w.sql
¤ñ¹ï·sÀÉ®× @@ -0,0 +1,2 @@ ALTER TABLE public.consultant ADD status varchar NULL; UPDATE public.consultant SET status = 'AVAILABLE'; pamapi/src/main/java/com/pollex/pam/domain/Consultant.java
@@ -1,5 +1,6 @@ package com.pollex.pam.domain; import com.pollex.pam.enums.ConsultantStatusEnum; import com.pollex.pam.enums.GenderEnum; import javax.persistence.*; @@ -73,6 +74,11 @@ @Column(name = "email") private String email; @Enumerated(value = EnumType.STRING) @Column(name = "status") private ConsultantStatusEnum status; public Long getId() { return id; @@ -241,6 +247,14 @@ this.email = email; } public ConsultantStatusEnum getStatus() { return status; } public void setStatus(ConsultantStatusEnum status) { this.status = status; } @Override public String toString() { return "Consultant{" + pamapi/src/main/java/com/pollex/pam/enums/ConsultantStatusEnum.java
¤ñ¹ï·sÀÉ®× @@ -0,0 +1,6 @@ package com.pollex.pam.enums; public enum ConsultantStatusEnum { AVAILABLE, DISABLE } pamapi/src/main/java/com/pollex/pam/security/provider/EServiceAuthenticationProvider.java
@@ -4,10 +4,12 @@ import com.pollex.pam.config.ApplicationProperties; import com.pollex.pam.domain.Consultant; import com.pollex.pam.enums.ConsultantDetailEnum; import com.pollex.pam.enums.ConsultantStatusEnum; import com.pollex.pam.repository.ConsultantRepository; import com.pollex.pam.security.token.EServiceAuthenticationToken; import com.pollex.pam.service.LoginRecordService; import com.pollex.pam.service.dto.EServiceResponse; import com.pollex.pam.web.rest.errors.ConsultantDisableException; import com.pollex.pam.web.rest.errors.EServiceErrorException; import org.apache.http.conn.ssl.NoopHostnameVerifier; import org.apache.http.conn.ssl.SSLConnectionSocketFactory; @@ -38,6 +40,8 @@ import java.security.NoSuchAlgorithmException; import java.security.cert.X509Certificate; import java.util.*; import static com.pollex.pam.enums.ConsultantStatusEnum.DISABLE; @Component public class EServiceAuthenticationProvider { @@ -87,9 +91,13 @@ } } private UsernamePasswordAuthenticationToken getConsultantToken(String account, String credential) { private UsernamePasswordAuthenticationToken getConsultantToken(String account, String credential) throws ConsultantDisableException { Consultant consultant = consultantRepository.findOneByAgentNo(account).orElseThrow(() -> new UsernameNotFoundException("該顧åè³æä¸¦ä¸å卿¼åªåå¹³å°ç³»çµ±ä¸")); if(consultant.getStatus() == DISABLE) { throw new ConsultantDisableException(); } List<GrantedAuthority> grantedAuths = Arrays.asList(new SimpleGrantedAuthority("ROLE_USER")); UsernamePasswordAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken(account, credential, grantedAuths); pamapi/src/main/java/com/pollex/pam/web/rest/errors/ConsultantDisableException.java
¤ñ¹ï·sÀÉ®× @@ -0,0 +1,8 @@ package com.pollex.pam.web.rest.errors; import org.springframework.http.HttpStatus; import org.springframework.web.bind.annotation.ResponseStatus; @ResponseStatus(value = HttpStatus.UNAUTHORIZED, reason = "é¡§å帳èç®ååç¨ä¸") public class ConsultantDisableException extends RuntimeException { }