@@ -8,6 +8,11 @@ import com.inductiveautomation.ignition.common.sqltags.history.AggregationMode
88import com.inductiveautomation.ignition.common.sqltags.history.BasicTagHistoryQueryParams
99import com.inductiveautomation.ignition.common.sqltags.history.ReturnFormat
1010import com.inductiveautomation.ignition.common.util.LoggerEx
11+ import com.inductiveautomation.ignition.gateway.dataroutes.AccessControlStrategy
12+ import com.inductiveautomation.ignition.gateway.dataroutes.PermissionType
13+ import com.inductiveautomation.ignition.gateway.dataroutes.PermissionType.getStrategies
14+ import com.inductiveautomation.ignition.gateway.dataroutes.RequestContext
15+ import com.inductiveautomation.ignition.gateway.dataroutes.RouteAccess
1116import com.inductiveautomation.ignition.gateway.model.GatewayContext
1217import jakarta.servlet.http.HttpServlet
1318import jakarta.servlet.http.HttpServletRequest
@@ -27,7 +32,15 @@ class HistoryServlet : HttpServlet() {
2732 context = servletContext.getAttribute(GatewayContext .SERVLET_CONTEXT_KEY ) as GatewayContext
2833 }
2934
35+ private val strategies = PermissionType .getStrategies(PermissionType .READ )
36+
3037 override fun doGet (req : HttpServletRequest , resp : HttpServletResponse ) {
38+ val requestContext = RequestContext (req, req.servletPath)
39+ val routeAccess = AccessControlStrategy .or (strategies).canAccess(requestContext)
40+ if (routeAccess != RouteAccess .GRANTED ) {
41+ resp.sendError(HttpServletResponse .SC_FORBIDDEN )
42+ return
43+ }
3144 resp.contentType = ContentType .APPLICATION_JSON .toString()
3245 resp.writer.use { writer ->
3346 val historyQuery: BasicTagHistoryQueryParams =
0 commit comments