KnowageLabs/Knowage-Server

knowage sdk

tianyu94 opened this issue · 1 comments

Describe the bug

Official sdk demo

To Reproduce

Just open the jsp page.

source code:

<!DOCTYPE html>
<%@ taglib prefix="spagobi" tagdir="/WEB-INF/tags/spagobi"%>

<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Hello</title>
</head>
<body>
<spagobi:execution
        spagobiContext="http://knowage:8080/knowage"
        documentLabel="demo1"
        userId="admin"
        password="xxx"
        iframeStyle="height:500px; width:100%"
        executionRole="admin"
        displayToolbar="<%= Boolean.FALSE %>"
        displaySliders="<%= Boolean.FALSE %>"
/>
</body>
</html>

Expected behavior

knowage.log ERROR:

[http-nio-8080-exec-9] 20 Apr 2021 08:46:24,774 ERROR it.eng.spagobi.commons.filters.ProfileFilter.doFilter:177 - Error while service execution
it.eng.spagobi.services.security.exceptions.SecurityException: Exception while creating user profile
        at it.eng.spagobi.commons.utilities.UserUtilities.getUserProfile(UserUtilities.java:250)
        at it.eng.spagobi.commons.utilities.GeneralUtilities.createNewUserProfile(GeneralUtilities.java:240)
        at it.eng.spagobi.commons.filters.ProfileFilter.doFilter(ProfileFilter.java:135)
        at sun.reflect.GeneratedMethodAccessor306.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:282)
        at org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:279)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAsPrivileged(Subject.java:549)
        at org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:314)
        at org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:253)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:191)
        at org.apache.catalina.core.ApplicationFilterChain.access$000(ApplicationFilterChain.java:47)
        at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:149)
        at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:145)
        at java.security.AccessController.doPrivileged(Native Method)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
        at it.eng.spagobi.commons.filters.SpagoBICoreCheckSessionFilter.doFilter(SpagoBICoreCheckSessionFilter.java:94)
        at sun.reflect.GeneratedMethodAccessor306.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:282)
        at org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:279)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAsPrivileged(Subject.java:549)
        at org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:314)
        at org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:253)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:191)
        at org.apache.catalina.core.ApplicationFilterChain.access$000(ApplicationFilterChain.java:47)
        at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:149)
        at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:145)
        at java.security.AccessController.doPrivileged(Native Method)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
        at it.eng.spagobi.utilities.filters.EncodingFilter.doFilter(EncodingFilter.java:54)
        at sun.reflect.GeneratedMethodAccessor306.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:282)
        at org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:279)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAsPrivileged(Subject.java:549)
        at org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:314)
        at org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:253)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:191)
        at org.apache.catalina.core.ApplicationFilterChain.access$000(ApplicationFilterChain.java:47)
        at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:149)
        at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:145)
        at java.security.AccessController.doPrivileged(Native Method)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
        at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
        at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)
        at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
        at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:806)
        at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1498)
        at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
        at java.lang.Thread.run(Thread.java:748)
Caused by: com.auth0.jwt.exceptions.JWTDecodeException: The token was expected to have 3 parts, but got 1.
        at com.auth0.jwt.TokenUtils.splitToken(TokenUtils.java:21)
        at com.auth0.jwt.JWTDecoder.<init>(JWTDecoder.java:27)
        at com.auth0.jwt.JWT.decode(JWT.java:21)
        at com.auth0.jwt.JWTVerifier.verify(JWTVerifier.java:352)
        at it.eng.spagobi.services.common.JWTSsoService.jwtToken2userId(JWTSsoService.java:183)
        at it.eng.spagobi.security.InternalSecurityServiceSupplierImpl.createUserProfile(InternalSecurityServiceSupplierImpl.java:122)
        at it.eng.spagobi.commons.utilities.UserUtilities.getUserProfile(UserUtilities.java:222)
        ... 66 more

Screenshots

Apache Tomcat 500 error.

Desktop (please complete the following information):

  • OS: Linux
  • Browser Chrome
  • Version knowage-server-7.4.2

Hello, the functionality you are using is deprecated, and will be removed in next versions.
You can achieve the same goal using an iframe with the link you get from the copy link (or html) from the specific document execution.

2021-04-21 11_37_19-Window

The users will have to authenticate themselves if needed, or you can use a single-sign-on on knowage.
Otherwise To make the document public it should be executable by the public role, so no authentication will be needed.

Hope it helps