Skip to content

Commit 44aae3e

Browse files
committed
Put history servlet behind auth
1 parent 43dc0d0 commit 44aae3e

1 file changed

Lines changed: 13 additions & 0 deletions

File tree

gateway/src/main/kotlin/org/imdc/extensions/gateway/HistoryServlet.kt

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,11 @@ import com.inductiveautomation.ignition.common.sqltags.history.AggregationMode
88
import com.inductiveautomation.ignition.common.sqltags.history.BasicTagHistoryQueryParams
99
import com.inductiveautomation.ignition.common.sqltags.history.ReturnFormat
1010
import 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
1116
import com.inductiveautomation.ignition.gateway.model.GatewayContext
1217
import jakarta.servlet.http.HttpServlet
1318
import 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

Comments
 (0)