private void updateDQPContext(SessionMetadata s) { DQPWorkContext workContext = DQPWorkContext.getWorkContext(); SessionMetadata old = workContext.getSession(); if (old.getSessionId() != null) { old.setActive(false); } workContext.setSession(s); if (s.getSessionId() != null) { s.setActive(true); } }
@Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { Throwable exception = null; try { DQPWorkContext workContext = DQPWorkContext.getWorkContext(); if (workContext.getSession().isClosed() || workContext.getSessionId() == null) { if (method.getName().equals("closeRequest")) { //$NON-NLS-1$ //the client can issue close request effectively concurrently with close session //there's no need for this to raise an exception return ResultsFuture.NULL_FUTURE; } String sessionID = workContext.getSession().getSessionId(); if (sessionID == null) { throw new InvalidSessionException(RuntimePlugin.Event.TEIID40041, RuntimePlugin.Util.gs(RuntimePlugin.Event.TEIID40041)); } workContext.setSession(new SessionMetadata()); throw new InvalidSessionException(RuntimePlugin.Event.TEIID40042, RuntimePlugin.Util.gs(RuntimePlugin.Event.TEIID40042, sessionID)); } return super.invoke(proxy, method, args); } catch (InvocationTargetException e) { exception = e.getTargetException(); } catch(Throwable t){ exception = t; } throw ExceptionUtil.convertException(method, exception); } }
@Test public void testClearPolicies() { DQPWorkContext message = new DQPWorkContext(); message.setSession(Mockito.mock(SessionMetadata.class)); Mockito.stub(message.getSession().getVdb()).toReturn(new VDBMetaData()); Map<String, DataPolicy> map = message.getAllowedDataPolicies(); map.put("role", Mockito.mock(DataPolicy.class)); //$NON-NLS-1$ assertFalse(map.isEmpty()); message.setSession(Mockito.mock(SessionMetadata.class)); Mockito.stub(message.getSession().getVdb()).toReturn(new VDBMetaData()); map = message.getAllowedDataPolicies(); assertTrue(map.isEmpty()); }
public static DQPWorkContext buildWorkContext() { DQPWorkContext workContext = new DQPWorkContext(); SessionMetadata session = new SessionMetadata(); workContext.setSession(session); session.setVDBName("vdb-name"); //$NON-NLS-1$ session.setVDBVersion(1); session.setSessionId(String.valueOf(1)); session.setUserName("foo"); //$NON-NLS-1$ return workContext; } }
@Test public void testAnyAuthenticated() { DQPWorkContext message = new DQPWorkContext(); SessionMetadata mock = Mockito.mock(SessionMetadata.class); message.setSession(mock); VDBMetaData vdb = new VDBMetaData(); DataPolicyMetadata dpm = new DataPolicyMetadata(); dpm.setAnyAuthenticated(true); vdb.addDataPolicy(dpm); Mockito.stub(mock.getVdb()).toReturn(vdb); //unauthenticated Map<String, DataPolicy> map = message.getAllowedDataPolicies(); assertEquals(0, map.size()); //authenticated message = new DQPWorkContext(); Mockito.stub(mock.getSubject()).toReturn(new Subject()); message.setSession(mock); map = message.getAllowedDataPolicies(); assertEquals(1, map.size()); }
private DQPWorkContext createWorkContext(final CommandContext context, VDBMetaData vdb) { SessionMetadata session = createTemporarySession(context.getUserName(), "asynch-mat-view-load", vdb); //$NON-NLS-1$ session.setSubject(context.getSubject()); session.setSecurityDomain(context.getSession().getSecurityDomain()); session.setSecurityContext(context.getSession().getSecurityContext()); DQPWorkContext workContext = new DQPWorkContext(); workContext.setAdmin(true); DQPWorkContext current = context.getDQPWorkContext(); workContext.setSession(session); workContext.setPolicies(current.getAllowedDataPolicies()); workContext.setSecurityHelper(current.getSecurityHelper()); return workContext; }
private DQPWorkContext createWorkContext(final CommandContext context, VDBMetaData vdb) { SessionMetadata session = createTemporarySession(context.getUserName(), "asynch-mat-view-load", vdb); //$NON-NLS-1$ session.setSubject(context.getSubject()); session.setSecurityDomain(context.getSession().getSecurityDomain()); session.setSecurityContext(context.getSession().getSecurityContext()); DQPWorkContext workContext = new DQPWorkContext(); workContext.setAdmin(true); DQPWorkContext current = context.getDQPWorkContext(); workContext.setSession(session); workContext.setPolicies(current.getAllowedDataPolicies()); workContext.setSecurityHelper(current.getSecurityHelper()); return workContext; }
private DQPWorkContext createWorkContext(final CommandContext context, VDBMetaData vdb) { SessionMetadata session = createTemporarySession(context.getUserName(), "asynch-mat-view-load", vdb); //$NON-NLS-1$ session.setSubject(context.getSubject()); session.setSecurityDomain(context.getSession().getSecurityDomain()); session.setSecurityContext(context.getSession().getSecurityContext()); DQPWorkContext workContext = new DQPWorkContext(); workContext.setAdmin(true); DQPWorkContext current = context.getDQPWorkContext(); workContext.setSession(session); workContext.setPolicies(current.getAllowedDataPolicies()); workContext.setSecurityHelper(current.getSecurityHelper()); return workContext; }
workContext.setSession(session); workContext.setAdmin(true);
workContext.setSession(session); workContext.setAdmin(true);
workContext.setSession(session); workContext.setAdmin(true);
message.setSession(Mockito.mock(SessionMetadata.class)); final String currentSC = "teiid-security-context"; //$NON-NLS-1$ Mockito.stub(message.getSession().getSecurityContext()).toReturn(currentSC);
public static DQPWorkContext buildWorkContext(QueryMetadataInterface metadata, VDBMetaData vdb) { DQPWorkContext workContext = new DQPWorkContext(); SessionMetadata session = new SessionMetadata(); workContext.setSession(session); session.setVDBName(vdb.getName()); session.setVDBVersion(vdb.getVersion()); session.setSessionId(String.valueOf(1)); session.setUserName("foo"); //$NON-NLS-1$ session.setVdb(vdb); workContext.getVDB().addAttchment(QueryMetadataInterface.class, metadata); if (metadata instanceof TransformationMetadata) { workContext.getVDB().addAttchment(TransformationMetadata.class, (TransformationMetadata)metadata); } DQPWorkContext.setWorkContext(workContext); return workContext; }