Skip to content

Package: RebuildSessionFilter

RebuildSessionFilter

nameinstructionbranchcomplexitylinemethod
RebuildSessionFilter()
M: 9 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 2 C: 0
0%
M: 1 C: 0
0%
onAccessDenied(ServletRequest, ServletResponse)
M: 40 C: 0
0%
M: 2 C: 0
0%
M: 2 C: 0
0%
M: 8 C: 0
0%
M: 1 C: 0
0%

Coverage

1: /*******************************************************************************
2: * Copyright (c) 2021, 2022 Eurotech and/or its affiliates and others
3: *
4: * This program and the accompanying materials are made
5: * available under the terms of the Eclipse Public License 2.0
6: * which is available at https://www.eclipse.org/legal/epl-2.0/
7: *
8: * SPDX-License-Identifier: EPL-2.0
9: *
10: * Contributors:
11: * Eurotech - initial API and implementation
12: *******************************************************************************/
13: package org.eclipse.kapua.job.engine.app.core.filter;
14:
15: import org.eclipse.kapua.app.api.core.auth.KapuaTokenAuthenticationFilter;
16: import org.eclipse.kapua.commons.security.KapuaSecurityUtils;
17: import org.eclipse.kapua.commons.security.KapuaSession;
18: import org.eclipse.kapua.job.engine.client.filter.SessionInfoHttpHeaders;
19: import org.eclipse.kapua.locator.KapuaLocator;
20: import org.eclipse.kapua.model.id.KapuaId;
21: import org.eclipse.kapua.model.id.KapuaIdFactory;
22:
23: import javax.servlet.ServletRequest;
24: import javax.servlet.ServletResponse;
25: import javax.servlet.http.HttpServletRequest;
26:
27: public class RebuildSessionFilter extends KapuaTokenAuthenticationFilter {
28:
29: private final KapuaIdFactory kapuaIdFactory = KapuaLocator.getInstance().getFactory(KapuaIdFactory.class);
30:
31: @Override
32: protected boolean onAccessDenied(ServletRequest request, ServletResponse response) throws Exception {
33: HttpServletRequest httpRequest = (HttpServletRequest) request;
34: String authMode = httpRequest.getHeader(SessionInfoHttpHeaders.AUTH_MODE);
35:• switch (authMode) {
36: case "trusted":
37: KapuaId scopeId = kapuaIdFactory.newKapuaId(httpRequest.getHeader(SessionInfoHttpHeaders.SCOPE_ID_HTTP_HEADER));
38: KapuaId userId = kapuaIdFactory.newKapuaId(httpRequest.getHeader(SessionInfoHttpHeaders.USER_ID_HTTP_HEADER));
39: KapuaSecurityUtils.setSession(KapuaSession.createFrom(scopeId, userId));
40: return true;
41: case "access_token":
42: default:
43: return super.onAccessDenied(request, response);
44: }
45: }
46:
47: }