40 lines
1.5 KiB
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;
|
|
}
|
|
|
|
}
|