-package org.onap.aaf.cadi.debug;\r
-import java.io.FileInputStream;\r
-import java.io.IOException;\r
-import java.net.InetAddress;\r
-import java.net.UnknownHostException;\r
-import java.util.HashMap;\r
-import java.util.Map;\r
-import java.util.Map.Entry;\r
-import java.util.Properties;\r
-import javax.servlet.Servlet;\r
-import javax.servlet.ServletConfig;\r
-import javax.servlet.ServletException;\r
-import javax.servlet.ServletRequest;\r
-import javax.servlet.ServletResponse;\r
-import javax.servlet.http.HttpServletRequest;\r
-import org.eclipse.jetty.server.Server;\r
-import org.eclipse.jetty.server.ServerConnector;\r
-import org.eclipse.jetty.server.handler.ContextHandler;\r
-import org.eclipse.jetty.servlet.FilterHolder;\r
-import org.eclipse.jetty.servlet.FilterMapping;\r
-import org.eclipse.jetty.servlet.ServletContextHandler;\r
-import org.eclipse.jetty.servlet.ServletHandler;\r
-import org.onap.aaf.cadi.filter.CadiFilter;\r
-import org.onap.aaf.cadi.filter.RolesAllowed;\r
-import org.onap.aaf.cadi.jetty.MiniJASPIWrap;\r
- \r
-public class CSPServletTest {\r
- public static void main(String[] args) {\r
- // Go ahead and print Test reports in cadi-core first\r
- Test.main(args);\r
- String hostname=null;\r
- try {\r
- hostname = InetAddress.getLocalHost().getHostName();\r
- } catch (UnknownHostException e) {\r
- e.printStackTrace();\r
- System.exit(1);\r
- }\r
- Properties props = new Properties();\r
- Map<String,String> map = new HashMap<String,String>();\r
- try {\r
- FileInputStream fis = new FileInputStream("run/cadi.properties");\r
- try {\r
- props.load(fis);\r
- String key,value;\r
- for( Entry<Object, Object> es : props.entrySet()) {\r
- key = es.getKey().toString();\r
- value = es.getValue().toString();\r
- map.put(key,value);\r
- if(key.startsWith("AFT_") || key.startsWith("DME2")) {\r
- System.setProperty(key,value);\r
- }\r
- }\r
- } finally {\r
- fis.close();\r
- }\r
- } catch(IOException e) {\r
- System.err.println("Cannot load run/cadi.properties");\r
- System.exit(1);\r
- }\r
- String portStr = System.getProperty("port");\r
- int port = portStr==null?8080:Integer.parseInt(portStr);\r
- try {\r
- // Add ServletHolder(s) and Filter(s) to a ServletHandler\r
- ServletHandler shand = new ServletHandler();\r
- \r
- FilterHolder cfh = new FilterHolder(CadiFilter.class);\r
- cfh.setInitParameters(map);\r
- \r
- shand.addFilterWithMapping(cfh, "/*", FilterMapping.ALL);\r
- shand.addServletWithMapping(new MiniJASPIWrap(MyServlet.class),"/*");\r
- // call initialize after start\r
- \r
- ContextHandler ch = new ServletContextHandler();\r
- ch.setContextPath("/caditest");\r
- ch.setHandler(shand);\r
- for( Entry<Object,Object> es : props.entrySet()) {\r
- ch.getInitParams().put(es.getKey().toString(), es.getValue().toString());\r
- }\r
- //ch.setErrorHandler(new MyErrorHandler());\r
- \r
- // Create Server and Add Context Handler\r
- final Server server = new Server();\r
- ServerConnector http = new ServerConnector(server);\r
- http.setPort(port);\r
- server.addConnector(http);\r
- server.setHandler(ch);\r
- \r
- // Start\r
- server.start();\r
- shand.initialize();\r
- \r
- System.out.println("To test, put http://"+ hostname + ':' + port + "/caditest/testme in a browser or 'curl'");\r
- // if we were really a server, we'd block the main thread with this join...\r
- // server.join();\r
- // But... since we're a test service, we'll block on StdIn\r
- System.out.println("Press <Return> to end service...");\r
- System.in.read();\r
- server.stop();\r
- System.out.println("All done, have a good day!");\r
- } catch (Exception e) {\r
- e.printStackTrace();\r
- System.exit(1);\r
- }\r
- }\r
- @RolesAllowed({"org.onap.aaf.myapp.myPerm|myInstance|myAction"})\r
- public static class MyServlet implements Servlet {\r
- private ServletConfig servletConfig;\r
- \r
- public void init(ServletConfig config) throws ServletException {\r
- servletConfig = config;\r
- }\r
- \r
- public ServletConfig getServletConfig() {\r
- return servletConfig;\r
- }\r
- \r
- public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {\r
- HttpServletRequest request;\r
- try {\r
- request = (HttpServletRequest)req;\r
- } catch (ClassCastException e) {\r
- throw new ServletException("Only serving HTTP today",e);\r
- }\r
- \r
- res.getOutputStream().print("<html><header><title>CSP Servlet Test</title></header><body><h1>You're good to go!</h1><pre>" +\r
- request.getUserPrincipal());\r
- \r
- String perm = request.getParameter("PERM");\r
- if(perm!=null)\r
- if(request.isUserInRole(perm)) {\r
- if(perm.indexOf('|')<0) \r
- res.getOutputStream().print("\nCongrats!, You are in Role " + perm);\r
- else\r
- res.getOutputStream().print("\nCongrats!, You have Permission " + perm);\r
- } else {\r
- if(perm.indexOf('|')<0) \r
- res.getOutputStream().print("\nSorry, you are NOT in Role " + perm);\r
- else\r
- res.getOutputStream().print("\nSorry, you do NOT have Permission " + perm);\r
- }\r
- \r
- res.getOutputStream().print("</pre></body></html>");\r
- \r
- }\r
- \r
- public String getServletInfo() {\r
- return "MyServlet";\r
- }\r
- \r
- public void destroy() {\r
- }\r
- }\r
-}\r
+\r
+ .. code:: bash\r
+ \r
+ package org.onap.aaf.cadi.debug;\r
+ import java.io.FileInputStream;\r
+ import java.io.IOException;\r
+ import java.net.InetAddress;\r
+ import java.net.UnknownHostException;\r
+ import java.util.HashMap;\r
+ import java.util.Map;\r
+ import java.util.Map.Entry;\r
+ import java.util.Properties;\r
+ import javax.servlet.Servlet;\r
+ import javax.servlet.ServletConfig;\r
+ import javax.servlet.ServletException;\r
+ import javax.servlet.ServletRequest;\r
+ import javax.servlet.ServletResponse;\r
+ import javax.servlet.http.HttpServletRequest;\r
+ import org.eclipse.jetty.server.Server;\r
+ import org.eclipse.jetty.server.ServerConnector;\r
+ import org.eclipse.jetty.server.handler.ContextHandler;\r
+ import org.eclipse.jetty.servlet.FilterHolder;\r
+ import org.eclipse.jetty.servlet.FilterMapping;\r
+ import org.eclipse.jetty.servlet.ServletContextHandler;\r
+ import org.eclipse.jetty.servlet.ServletHandler;\r
+ import org.onap.aaf.cadi.filter.CadiFilter;\r
+ import org.onap.aaf.cadi.filter.RolesAllowed;\r
+ import org.onap.aaf.cadi.jetty.MiniJASPIWrap;\r
+ \r
+ public class CSPServletTest {\r
+ public static void main(String[] args) {\r
+ // Go ahead and print Test reports in cadi-core first\r
+ Test.main(args);\r
+ String hostname=null;\r
+ try {\r
+ hostname = InetAddress.getLocalHost().getHostName();\r
+ } catch (UnknownHostException e) {\r
+ e.printStackTrace();\r
+ System.exit(1);\r
+ }\r
+ Properties props = new Properties();\r
+ Map<String,String> map = new HashMap<String,String>();\r
+ try {\r
+ FileInputStream fis = new FileInputStream("run/cadi.properties");\r
+ try {\r
+ props.load(fis);\r
+ String key,value;\r
+ for( Entry<Object, Object> es : props.entrySet()) {\r
+ key = es.getKey().toString();\r
+ value = es.getValue().toString();\r
+ map.put(key,value);\r
+ if(key.startsWith("AFT_") || key.startsWith("DME2")) {\r
+ System.setProperty(key,value);\r
+ }\r
+ }\r
+ } finally {\r
+ fis.close();\r
+ }\r
+ } catch(IOException e) {\r
+ System.err.println("Cannot load run/cadi.properties");\r
+ System.exit(1);\r
+ }\r
+ String portStr = System.getProperty("port");\r
+ int port = portStr==null?8080:Integer.parseInt(portStr);\r
+ try {\r
+ // Add ServletHolder(s) and Filter(s) to a ServletHandler\r
+ ServletHandler shand = new ServletHandler();\r
+ \r
+ FilterHolder cfh = new FilterHolder(CadiFilter.class);\r
+ cfh.setInitParameters(map);\r
+ \r
+ shand.addFilterWithMapping(cfh, "/*", FilterMapping.ALL);\r
+ shand.addServletWithMapping(new MiniJASPIWrap(MyServlet.class),"/*");\r
+ // call initialize after start\r
+ \r
+ ContextHandler ch = new ServletContextHandler();\r
+ ch.setContextPath("/caditest");\r
+ ch.setHandler(shand);\r
+ for( Entry<Object,Object> es : props.entrySet()) {\r
+ ch.getInitParams().put(es.getKey().toString(), es.getValue().toString());\r
+ }\r
+ //ch.setErrorHandler(new MyErrorHandler());\r
+ \r
+ // Create Server and Add Context Handler\r
+ final Server server = new Server();\r
+ ServerConnector http = new ServerConnector(server);\r
+ http.setPort(port);\r
+ server.addConnector(http);\r
+ server.setHandler(ch);\r
+ \r
+ // Start\r
+ server.start();\r
+ shand.initialize();\r
+ \r
+ System.out.println("To test, put http://"+ hostname + ':' + port + "/caditest/testme in a browser or 'curl'");\r
+ // if we were really a server, we'd block the main thread with this join...\r
+ // server.join();\r
+ // But... since we're a test service, we'll block on StdIn\r
+ System.out.println("Press <Return> to end service...");\r
+ System.in.read();\r
+ server.stop();\r
+ System.out.println("All done, have a good day!");\r
+ } catch (Exception e) {\r
+ e.printStackTrace();\r
+ System.exit(1);\r
+ }\r
+ }\r
+ @RolesAllowed({"org.onap.aaf.myapp.myPerm|myInstance|myAction"})\r
+ public static class MyServlet implements Servlet {\r
+ private ServletConfig servletConfig;\r
+ \r
+ public void init(ServletConfig config) throws ServletException {\r
+ servletConfig = config;\r
+ }\r
+ \r
+ public ServletConfig getServletConfig() {\r
+ return servletConfig;\r
+ }\r
+ \r
+ public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {\r
+ HttpServletRequest request;\r
+ try {\r
+ request = (HttpServletRequest)req;\r
+ } catch (ClassCastException e) {\r
+ throw new ServletException("Only serving HTTP today",e);\r
+ }\r
+ \r
+ res.getOutputStream().print("<html><header><title>CSP Servlet Test</title></header><body><h1>You're good to go!</h1><pre>" +\r
+ request.getUserPrincipal());\r
+ \r
+ String perm = request.getParameter("PERM");\r
+ if(perm!=null)\r
+ if(request.isUserInRole(perm)) {\r
+ if(perm.indexOf('|')<0) \r
+ res.getOutputStream().print("\nCongrats!, You are in Role " + perm);\r
+ else\r
+ res.getOutputStream().print("\nCongrats!, You have Permission " + perm);\r
+ } else {\r
+ if(perm.indexOf('|')<0) \r
+ res.getOutputStream().print("\nSorry, you are NOT in Role " + perm);\r
+ else\r
+ res.getOutputStream().print("\nSorry, you do NOT have Permission " + perm);\r
+ }\r
+ \r
+ res.getOutputStream().print("</pre></body></html>");\r
+ \r
+ }\r
+ \r
+ public String getServletInfo() {\r
+ return "MyServlet";\r
+ }\r
+ \r
+ public void destroy() {\r
+ }\r
+ }\r
+ }\r