office-alexander-logistics/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/zoho/ZohoAPIService.java

40 lines
1.5 KiB
Java

package com.alexanderlogistics.zoho;
import jakarta.annotation.security.DeclareRoles;
import jakarta.annotation.security.RolesAllowed;
import jakarta.annotation.security.RunAs;
import jakarta.ejb.Lock;
import jakarta.ejb.LockType;
import jakarta.ejb.Singleton;
/**
* Der ZohoAPIService stellt methoden für den Zugriff auf die Zoho API bereit.
* Er handelt auch die Authentifizeirung über einen Access Token. Der
* ZohoOAuhtGrantService der dazu dient einen AccessCode von Zoho zu ermitteln
* übergibt den code an diesesn Servcie. Er dietn also als Singelton
*/
@DeclareRoles({ "org.imixs.ACCESSLEVEL.NOACCESS", "org.imixs.ACCESSLEVEL.READERACCESS",
"org.imixs.ACCESSLEVEL.AUTHORACCESS", "org.imixs.ACCESSLEVEL.EDITORACCESS",
"org.imixs.ACCESSLEVEL.MANAGERACCESS" })
@RolesAllowed({ "org.imixs.ACCESSLEVEL.NOACCESS", "org.imixs.ACCESSLEVEL.READERACCESS",
"org.imixs.ACCESSLEVEL.AUTHORACCESS", "org.imixs.ACCESSLEVEL.EDITORACCESS",
"org.imixs.ACCESSLEVEL.MANAGERACCESS" })
@Singleton
@RunAs("org.imixs.ACCESSLEVEL.MANAGERACCESS")
public class ZohoAPIService {
private String accessToken;
private String clientID;
private String clientSecret;
@Lock(LockType.WRITE) // Standardmäßig ist @Lock(LockType.READ)
public void setAccessToken(String token) {
this.accessToken = token;
}
@Lock(LockType.READ) // Erlaubt parallele Lesezugriffe
public String getAccessToken() {
return accessToken;
}
}