From e0f2c64ad6360e2ecec983cb5e0a60f812672106 Mon Sep 17 00:00:00 2001 From: wbauer Date: Thu, 4 Sep 2008 14:56:54 +0000 Subject: finished access controller, accessed it from command invoker and configured everything within onlinebku git-svn-id: https://joinup.ec.europa.eu/svn/mocca/trunk@14 8a26b1a7-26f0-462f-b9ef-d0e30c41f5a4 --- .../gv/egiz/bku/accesscontroller/ConfigTest.java | 91 +++++++++++++++++++++- 1 file changed, 89 insertions(+), 2 deletions(-) (limited to 'bkucommon/src/test/java/at/gv/egiz/bku/accesscontroller/ConfigTest.java') diff --git a/bkucommon/src/test/java/at/gv/egiz/bku/accesscontroller/ConfigTest.java b/bkucommon/src/test/java/at/gv/egiz/bku/accesscontroller/ConfigTest.java index b53db264..bce3cdd9 100644 --- a/bkucommon/src/test/java/at/gv/egiz/bku/accesscontroller/ConfigTest.java +++ b/bkucommon/src/test/java/at/gv/egiz/bku/accesscontroller/ConfigTest.java @@ -4,14 +4,101 @@ import javax.xml.bind.JAXBException; import org.junit.Test; +import at.gv.egiz.bku.slcommands.InfoboxReadCommand; +import at.gv.egiz.bku.slcommands.SLCommandContext; +import at.gv.egiz.bku.slcommands.SLResult; +import at.gv.egiz.bku.slcommands.impl.InfoboxReadCommandImpl; +import at.gv.egiz.bku.slexceptions.SLCommandException; +import at.gv.egiz.bku.slexceptions.SLException; +import static org.junit.Assert.*; + public class ConfigTest { - public final static String RESOURCE = "at/gv/egiz/bku/accesscontroller/AccessControlConfig.xml"; + public final static String RESOURCE1 = "at/gv/egiz/bku/accesscontroller/AccessControlConfig.xml"; + public final static String RESOURCE2 = "at/gv/egiz/bku/accesscontroller/SimpleChainTest.xml"; + + static class MyInfoBox implements InfoboxReadCommand { + private String domainId; + private String boxId; + private String name; + + public MyInfoBox(String identifier, String domainId) { + this.boxId = identifier; + this.domainId = domainId; + } + + @Override + public String getIdentityLinkDomainId() { + return domainId; + } + + @Override + public String getInfoboxIdentifier() { + return boxId; + } + + @Override + public SLResult execute() { + return null; + } + + public void setName(String name) { + this.name = name; + } + + @Override + public String getName() { + return "InfoboxReadRequest"; + } + + @Override + public void init(SLCommandContext ctx, Object unmarshalledRequest) + throws SLCommandException { + } + } @Test public void testUnmarshall() throws JAXBException { AccessControllerFactory.getInstance().init( - getClass().getClassLoader().getResourceAsStream(RESOURCE)); + getClass().getClassLoader().getResourceAsStream(RESOURCE1)); + } + + @Test + public void testBasicFunction() throws JAXBException, SLException { + AccessControllerFactory.getInstance().init( + getClass().getClassLoader().getResourceAsStream(RESOURCE2)); + ChainChecker cc = AccessControllerFactory.getInstance().getChainChecker( + "InputFilter"); + assertNotNull(cc); + + AccessCheckerContext ctx = new AccessCheckerContext(null, + AuthenticationClass.ANONYMOUS, null); + ChainResult cr = cc.check(ctx); + assertFalse(cr.matchFound()); + + ctx = new AccessCheckerContext(new MyInfoBox("IdentityLink", "hansi"), + AuthenticationClass.CERTIFIED, null); + cr = cc.check(ctx); + assertTrue(cr.matchFound()); + + ctx = new AccessCheckerContext(new MyInfoBox("Something", "hansi"), + AuthenticationClass.CERTIFIED, null); + cr = cc.check(ctx); + assertFalse(cr.matchFound()); + + MyInfoBox mib = new MyInfoBox("IdentityLink", "seppl"); + mib.setName("ReadInfoboxSchickSchnack"); + ctx = new AccessCheckerContext(mib, AuthenticationClass.CERTIFIED, null); + cr = cc.check(ctx); + assertTrue(cr.matchFound()); + assertTrue(cr.getAction()==Action.ALLOW); + + mib = new MyInfoBox("IdentityLink", null); + mib.setName("ReadInfoboxSchickSchnack"); + ctx = new AccessCheckerContext(mib, AuthenticationClass.CERTIFIED, null); + cr = cc.check(ctx); + assertTrue(cr.matchFound()); + assertTrue(cr.getAction()==Action.DENY); } } -- cgit v1.2.3