kikovalle / PLGSharepointRestAPI-java

Easy to use wrapper for the Sharepoint Rest API v1. Even if this is not a full implementation it covers most common use cases and provides examples to extending this API.
MIT License
42 stars 32 forks source link

403 Forbidden. Posibilidad de evitar conexión pasando por _api/contextinfo #43

Open JLLMNCHR opened 2 years ago

JLLMNCHR commented 2 years ago

Buenas,

Me falla la conexión a determinado dominio (https://company-z.sharepoint.com/) en el método getFormDigestValue de la clase AuthTokenHelperOnline.

Concretamente en la línea siguiente. ResponseEntity<String> responseEntity = restTemplate.exchange(requestEntity, String.class);

Falla con un 403 Forbidden.

Y en las trazas: "{"error":{"code":"-2147024891, System.UnauthorizedAccessException","message":{"lang":"en-US","value":"Attempted to perform an unauthorized operation."}}}

¿Hay alguna forma de intentar conectar sin pasar por https://company-z.sharepoint.com/_api/contextinfo? (ya que es donde parece que falla) ¿O algún otro “truco”? … ¿o seteo de cabeceras o algo así?

Gracias y un saludo

JLLMNCHR commented 2 years ago

YA FUNCIONA!!

pero para ello, he tenido que cambiar la línea:

new URI(String.format("https://%s/_api/contextinfo", this.domain)));

por esta otra:

new URI(String.format("https://%s/_api/contextinfo", this.domain + this.spSiteUri)));

... para que me deje conectarme a nivel de site, no a nivel de domain.

JLLMNCHR commented 2 years ago

Coméntame si contemplas añadir ese cambio a tus fuentes, por ver si espero a próximas versiones, o tal.

kikovalle commented 2 years ago

Perdon por la demora en responder, pero ando algo liado. Me apunto el cambio para integrarlo en la siguiente release.

kikovalle commented 1 year ago

Buenos días Disculpa que no haya podido responder antes pero llevo una temporada bastante liado con el trabajo.

Tengo varios temas pendientes que revisar de los issues abiertos. Cualquier aportación será tomada en cuenta.

Gracias, saludos

kikovalle commented 9 months ago

Hola,

Hoy en día parece más estable utilizar el login oauth con un clientId y secret que se autentiquen contra una aplicación/addin que de acceso a la instancia online.