Created
August 7, 2019 02:00
-
-
Save jocoonopa/d17e994cc1face4d27440e6798a8a209 to your computer and use it in GitHub Desktop.
Report Server Entry
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import groovy.sql.Sql | |
import groovy.xml.* | |
import net.datenwerke.security.service.authenticator.AuthenticatorService | |
def authservice = GLOBALS.getInstance(AuthenticatorService.class) | |
def tenantId = httpRequest.getParameter("tenant_id") | |
def biToken = httpRequest.getParameter("bi_token") | |
def dbURL = "jdbc:mysql://localhost:3306/dbuser" | |
def dbUserName = "dbuser" | |
def dbPassword = "dbPassword" | |
def dbDriver = "com.mysql.jdbc.Driver" | |
def systemDbConnection = Sql.newInstance(dbURL,dbUserName,dbPassword,dbDriver) | |
def website = systemDbConnection.firstRow("SELECT websites.* FROM websites LEFT JOIN acds ON acds.id = websites.acd_id WHERE acds.center_id = " + tenantId) | |
def uuid = website.uuid | |
systemDbConnection.close() | |
def user = null | |
if (authservice.isAuthenticated()) { | |
user = authservice.getCurrentUser() | |
} else { | |
def dbTenantUrl = "jdbc:mysql://localhost:3306/" + uuid | |
def tenantDbConnection = Sql.newInstance(dbTenantUrl, dbUserName, dbPassword, dbDriver) | |
def apUser = tenantDbConnection.firstRow("SELECT users.* FROM users WHERE bi_token = '" + biToken + "'") | |
tenantDbConnection.close() | |
if (apUser) { | |
user = GLOBALS.getEntityManager().createQuery("FROM User WHERE lower(username) = :name") | |
.setParameter("name", apUser.name.toLowerCase()) | |
.getSingleResult() | |
authservice.setAuthenticated(user.getId()) | |
} else { | |
def writer = new StringWriter() | |
new MarkupBuilder(writer).html { | |
head { | |
title ("404") | |
} | |
body { | |
h1("User Not Found!") | |
} | |
} | |
return writer.toString() | |
} | |
} | |
def url = "https://01.firstline.cc:8443/rs/reportserver/reportexport" | |
def redirectUrl = url + "?id=" + httpRequest.getParameter("report_id") + "&p_tenant_id=" + httpRequest.getParameter("tenant_id") + "&" + httpRequest.getQueryString() + "&download=false" | |
// For debug, don't remove | |
/* | |
def writer = new StringWriter() | |
new MarkupBuilder(writer).html { | |
head { | |
title ("UserId") | |
} | |
body { | |
h1("UserId: " + uuid + "\n\n" + user.getId()) | |
h5(url + "?id=" + httpRequest.getParameter("report_id") + "&" + httpRequest.getQueryString()) | |
h6(user.getUsername()) | |
} | |
} | |
writer.toString() | |
*/ | |
/* redirect */ | |
httpResponse.sendRedirect(redirectUrl) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment