#1 2013-07-16 11:04:36

bau_hape
Member
Registered: 2013-07-16

Violated Security bei "Berichtsdokumentation anzeigen"

Hallo!

Ich habe folgendes Problem:
Ich habe einige User erstellt und diese den TeamSpaces zugewiesen. Klicke ich als einer der User auf ein Report-Template im TeamSpace sollte normalerweise die Berichtsdokumentation zum Report erscheinen. Jedoch erhalte ich folgende Fehlermeldung (wenn ich den Bericht öffne gibt es keine Probleme - lässt sich auch ausführen):
- Das Berechtigungsproblem tritt nur bei der Berichtsdokumentation auf.

-------------------------------------------------------------------------------------------------------------------------

Fehler: Der Bericht konnte nicht ausgeführt werden.
Security Violation
Im Falle eines nicht nachvollziehbaren Fehlers kontaktieren Sie bitte einen Administrator.
Details:
java.lang.RuntimeException: Security Violation at net.datenwerke.rs.core.server.reportexport.ReportExportServlet.validateRequest(ReportExportServlet.java:136) at net.datenwerke.rs.core.server.reportexport.ReportExportServlet.exportReport(ReportExportServlet.java:302) at net.datenwerke.rs.core.server.reportexport.ReportExportServlet.exportReportById(ReportExportServlet.java:242) at net.datenwerke.rs.core.server.reportexport.ReportExportServlet.exportReportByIdViaRequest(ReportExportServlet.java:233) at net.datenwerke.rs.core.server.reportexport.ReportExportServlet.doGet(ReportExportServlet.java:153) at net.datenwerke.rs.core.server.reportexport.ReportExportServlet$$EnhancerByGuice$$85e0481a.CGLIB$doGet$7() at net.datenwerke.rs.core.server.reportexport.ReportExportServlet$$EnhancerByGuice$$85e0481a$$FastClassByGuice$$d7e5789d.invoke() at com.google.inject.internal.cglib.proxy.$MethodProxy.invokeSuper(MethodProxy.java:228) at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:72) at com.google.inject.persist.jpa.JpaLocalTxnInterceptor.invoke(JpaLocalTxnInterceptor.java:66) at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:72) at net.datenwerke.security.service.security.aop.SecurityCheckInterceptor.invoke(SecurityCheckInterceptor.java:110) at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:72) at com.google.inject.internal.InterceptorStackCallback.intercept(InterceptorStackCallback.java:52) at net.datenwerke.rs.core.server.reportexport.ReportExportServlet$$EnhancerByGuice$$85e0481a.doGet() at javax.servlet.http.HttpServlet.service(HttpServlet.java:621) at javax.servlet.http.HttpServlet.service(HttpServlet.java:728) at net.datenwerke.rs.core.server.reportexport.ReportExportServlet$$EnhancerByGuice$$85e0481a.CGLIB$service$14() at net.datenwerke.rs.core.server.reportexport.ReportExportServlet$$EnhancerByGuice$$85e0481a$$FastClassByGuice$$d7e5789d.invoke() at com.google.inject.internal.cglib.proxy.$MethodProxy.invokeSuper(MethodProxy.java:228) at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:72) at net.datenwerke.security.service.security.aop.SecurityCheckInterceptor.invoke(SecurityCheckInterceptor.java:110) at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:72) at com.google.inject.internal.InterceptorStackCallback.intercept(InterceptorStackCallback.java:52) at net.datenwerke.rs.core.server.reportexport.ReportExportServlet$$EnhancerByGuice$$85e0481a.service() at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:263) at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:178) at com.google.inject.servlet.ManagedServletPipeline.service(ManagedServletPipeline.java:91) at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:62) at com.google.inject.persist.PersistFilter.doFilter(PersistFilter.java:89) at com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:163) at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:58) at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:118) at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:113) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source)


-------------------------------------------------------------------------------------------------------------------------


Mein Frage ist nun, wie ich die Berechtigungen so einstellen kann, dass auch die Berichtsdokumentation als User ohne super_user-Rechte öffnen kann?
Vielen Dank schon im Voraus!
Hans Peter

Offline

#2 2013-07-16 12:30:54

Marcel Berger
InfoFabrik
Registered: 2012-03-14
Website

Re: Violated Security bei "Berichtsdokumentation anzeigen"

Hallo Hans Peter,

dem Benutzer fehlen die Rechte für den Dokubericht. Die Rechte für den Zugriff auf Berichte werden in der Berichtsverwaltung im Berichtsbaum eingestellt. Durch einen Rech Klick auf den jeweiligen Ordner oder Bericht kannst Du die gewünschten Rechte einstellen (Tab Rechteverwaltung).

Rechte in ReportServer werden in Form von Access Control Lists (ACL) und Access Control Entries (ACE) vergeben. Für jedes Objekt, auf welches der Zugriff eingeschränkt werden
soll, existiert eine ACL. Die ACL selbst ist hierbei eine Folge von ACEs welche ihrerseits aus mehreren Komponenten besteht.

Solltest Du den Democontent nutzen wäre der Dokubericht im Ordner Scriptreports zu finden.

Du legst nun einen neuen Folk an wählst den Benutzer oder die Benutzergruppe (ein Ordner aus dem Benutzerbaum) aus und vergibst die Rechte in deinem Fall ausführen und lesen. Und es bietet sich an das Recht lesen zu vergeben damit der Benutzer den Bericht auch im Katalog sehen kann.

Für den Dokubericht musst Du nun zusätzlich noch das eigentliche Skript berechtigen. In den Eigenschaften des Dokuberichtes findest Du den Namen des Skripts dokbericht.groovy. Diesen findest Du im Dateisystem um Ordner bin\reports. Die Rechte werden analog vergeben.

Kleiner Tipp: Im Handbuch für Administratoren wird die Rechteverwaltung von ReportServer ausführlich beschrieben den Link dazu findest Du hier.

Viele Grüße aus dem sonnigen Wiesbaden

Marcel Berger
datenwerke

Offline

#3 2013-07-16 12:59:24

bau_hape
Member
Registered: 2013-07-16

Re: Violated Security bei "Berichtsdokumentation anzeigen"

Durch das Setzen der Berechtigungen für das Berichtdokumentation.groovy - Skript funktioniert die Anzeige einwandfrei smile

Vielen Dank für die Information!!
Lg, Hans Peter!

Offline

Board footer

Powered by FluxBB