Return-Path: X-Original-To: apmail-directory-commits-archive@www.apache.org Delivered-To: apmail-directory-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 5C4061728F for ; Tue, 27 Jan 2015 12:54:29 +0000 (UTC) Received: (qmail 3231 invoked by uid 500); 27 Jan 2015 12:54:29 -0000 Delivered-To: apmail-directory-commits-archive@directory.apache.org Received: (qmail 3164 invoked by uid 500); 27 Jan 2015 12:54:29 -0000 Mailing-List: contact commits-help@directory.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@directory.apache.org Delivered-To: mailing list commits@directory.apache.org Received: (qmail 3137 invoked by uid 99); 27 Jan 2015 12:54:29 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 27 Jan 2015 12:54:29 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id B70E1E0EF1; Tue, 27 Jan 2015 12:54:28 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: smckinney@apache.org To: commits@directory.apache.org Date: Tue, 27 Jan 2015 12:54:41 -0000 Message-Id: <52041e66cb0e4a25a21c4e58fe0b9aae@git.apache.org> In-Reply-To: <4937fb523e494b1b974412643a915e1f@git.apache.org> References: <4937fb523e494b1b974412643a915e1f@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: [14/23] directory-fortress-core git commit: FC-54 - Benchmark activities - add accessmgr console FC-54 - Benchmark activities - add accessmgr console Project: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/repo Commit: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/commit/7cc98592 Tree: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/tree/7cc98592 Diff: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/diff/7cc98592 Branch: refs/heads/master Commit: 7cc98592fe12ade315ae55ebf00a78fb5f27bcc4 Parents: 64bfbe6 Author: Shawn McKinney Authored: Mon Jan 5 14:12:41 2015 -0600 Committer: Shawn McKinney Committed: Mon Jan 5 14:12:41 2015 -0600 ---------------------------------------------------------------------- .../fortress/core/AccelMgrConsole.java | 212 +++++++++++++++++++ .../fortress/core/ProcessMenuCommand.java | 75 +++++++ 2 files changed, 287 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/7cc98592/src/test/java/org/apache/directory/fortress/core/AccelMgrConsole.java ---------------------------------------------------------------------- diff --git a/src/test/java/org/apache/directory/fortress/core/AccelMgrConsole.java b/src/test/java/org/apache/directory/fortress/core/AccelMgrConsole.java new file mode 100644 index 0000000..d1e79b9 --- /dev/null +++ b/src/test/java/org/apache/directory/fortress/core/AccelMgrConsole.java @@ -0,0 +1,212 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + * + */ +package org.apache.directory.fortress.core; + +import org.apache.directory.fortress.core.rbac.TestUtils; +import org.apache.directory.fortress.core.rbac.UserAdminRole; +import org.apache.directory.fortress.core.rbac.Permission; +import org.apache.directory.fortress.core.rbac.Session; +import org.apache.directory.fortress.core.rbac.User; +import org.apache.directory.fortress.core.rbac.UserRole; + +import java.util.Enumeration; +import java.util.List; + +import org.apache.directory.fortress.core.util.attr.VUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + + +/** + * * Test class for driving Fortress RBAC runtime policy APIs within a console. + * + * @author Apache Directory Project + */ +class AccelMgrConsole +{ + private AccelMgr am = null; + private Session session = null; + private static final String CLS_NM = AccelMgrConsole.class.getName(); + private static final Logger LOG = LoggerFactory.getLogger( CLS_NM ); + + /** + * put your documentation comment here + */ + public AccelMgrConsole() + { + try + { + am = AccelMgrFactory.createInstance( TestUtils.getContext() ); + } + catch ( org.apache.directory.fortress.core.SecurityException e) + { + LOG.error("constructor caught SecurityException rc=" + e.getErrorId() + ", msg=" + e.getMessage(), e); + } + } + + + void createSession() + { + try + { + ReaderUtil.clearScreen(); + System.out.println("Enter userId:"); + String userId = ReaderUtil.readLn(); + System.out.println("Enter password:"); + String password = ReaderUtil.readLn(); + session = am.createSession(new User(userId, password.toCharArray()), false); + System.out.println("Session created successfully for userId [" + userId + "]"); + System.out.println("session [" + session + "]"); + System.out.println("ENTER to continue"); + } + catch (SecurityException e) + { + LOG.error("createSession caught SecurityException rc=" + e.getErrorId() + ", msg=" + e.getMessage(), e); + } + ReaderUtil.readChar(); + } + + /** + * + */ + void checkAccess() + { + //Session session = null; + try + { + VUtil.assertNotNull(session, GlobalErrIds.USER_SESS_NULL, "AccelMgrConsole.checkAccess"); + ReaderUtil.clearScreen(); + Permission perm = new Permission(); + System.out.println("Enter object name:"); + perm.setObjName( ReaderUtil.readLn() ); + System.out.println("Enter operation name:"); + perm.setOpName( ReaderUtil.readLn() ); + System.out.println("Enter object id (or NULL to skip):"); + String val = ReaderUtil.readLn(); + if ( val != null && val.length() > 0 ) + { + perm.setObjId( val ); + } + + boolean result = am.checkAccess( session, perm ); + System.out.println("CheckAccess return [" + result + "] for user [" + session.getUserId() + "], objName [" + perm.getObjName() + "], operationName [" + perm.getOpName() + "]" + + ", objId [" + perm.getObjId() + "]"); + System.out.println("ENTER to continue"); + } + catch (SecurityException e) + { + LOG.error("checkAccess caught SecurityException rc=" + e.getErrorId() + ", msg=" + e.getMessage(), e); + } + ReaderUtil.readChar(); + } + + void sessionRoles() + { + try + { + VUtil.assertNotNull(session, GlobalErrIds.USER_SESS_NULL, "AccelMgrConsole.sessionRoles"); + ReaderUtil.clearScreen(); + List roles = am.sessionRoles( session ); + //System.out.println(" USER [" + session.getUserId() + "]:"); + if (roles != null) + { + for (int i = 0; i < roles.size(); i++) + { + UserRole ur = roles.get(i); + System.out.println(" USER ROLE[" + i + "]:"); + System.out.println(" role name [" + ur.getName() + "]"); + System.out.println(" begin time [" + ur.getBeginTime() + "]"); + System.out.println(" end time [" + ur.getEndTime() + "]"); + System.out.println(" begin date [" + ur.getBeginDate() + "]"); + System.out.println(" end date [" + ur.getEndDate() + "]"); + System.out.println(" begin lock [" + ur.getBeginLockDate() + "]"); + System.out.println(" end lock [" + ur.getEndLockDate() + "]"); + System.out.println(" day mask [" + ur.getDayMask() + "]"); + System.out.println(" time out [" + ur.getTimeout() + "]"); + } + } + + System.out.println("ENTER to continue"); + } + catch (SecurityException e) + { + LOG.error("sessionRoles caught SecurityException=" + e, e); + } + ReaderUtil.readChar(); + } + + + void addActiveRole() + { + try + { + VUtil.assertNotNull(session, GlobalErrIds.USER_SESS_NULL, "AccelMgrConsole.addActiveRole"); + ReaderUtil.clearScreen(); + System.out.println("Enter role name"); + String role = ReaderUtil.readLn(); + am.addActiveRole(session, new UserRole(role)); + System.out.println("addActiveRole successful"); + System.out.println("ENTER to continue"); + } + catch (SecurityException e) + { + LOG.error("addActiveRole caught SecurityException rc=" + e.getErrorId() + ", msg=" + e.getMessage(), e); + } + ReaderUtil.readChar(); + } + + void dropActiveRole() + { + try + { + VUtil.assertNotNull(session, GlobalErrIds.USER_SESS_NULL, "AccelMgrConsole.dropActiveRole"); + ReaderUtil.clearScreen(); + System.out.println("Enter role name"); + String role = ReaderUtil.readLn(); + am.dropActiveRole( session, new UserRole( role ) ); + System.out.println("dropActiveRole successful"); + System.out.println("ENTER to continue"); + } + catch (SecurityException e) + { + LOG.error("dropActiveRole caught SecurityException rc=" + e.getErrorId() + ", msg=" + e.getMessage(), e); + } + ReaderUtil.readChar(); + } + + void deleteSession() + { + try + { + VUtil.assertNotNull(session, GlobalErrIds.USER_SESS_NULL, "AccelMgrConsole.deleteSession"); + am.deleteSession( session ); + System.out.println("deleteSession successful"); + System.out.println("ENTER to continue"); + } + catch (SecurityException e) + { + LOG.error("deleteSession caught SecurityException rc=" + e.getErrorId() + ", msg=" + e.getMessage(), e); + } + ReaderUtil.readChar(); + } + +} + + http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/7cc98592/src/test/java/org/apache/directory/fortress/core/ProcessMenuCommand.java ---------------------------------------------------------------------- diff --git a/src/test/java/org/apache/directory/fortress/core/ProcessMenuCommand.java b/src/test/java/org/apache/directory/fortress/core/ProcessMenuCommand.java index 9506d57..3547d9a 100755 --- a/src/test/java/org/apache/directory/fortress/core/ProcessMenuCommand.java +++ b/src/test/java/org/apache/directory/fortress/core/ProcessMenuCommand.java @@ -36,6 +36,7 @@ class ProcessMenuCommand final private AdminMgrConsole adminConsole = new AdminMgrConsole(); final private ReviewMgrConsole reviewConsole = new ReviewMgrConsole(); final private AccessMgrConsole accessConsole = new AccessMgrConsole(); + final private AccelMgrConsole accelConsole = new AccelMgrConsole(); final private PolicyMgrConsole policyConsole = new PolicyMgrConsole(); final private AuditMgrConsole auditConsole = new AuditMgrConsole(); final private DelegatedAdminMgrConsole delAdminConsole = new DelegatedAdminMgrConsole(); @@ -63,6 +64,7 @@ class ProcessMenuCommand System.out.println( "9. CONFIG MANAGER FUNCTIONS" ); System.out.println( "A. ENCRYPTION MANAGER FUNCTIONS" ); System.out.println( "B. GROUP MANAGER FUNCTIONS" ); + System.out.println( "C. ACCEL MANAGER FUNCTIONS" ); System.out.println( "Enter q or Q to quit" ); } @@ -118,6 +120,10 @@ class ProcessMenuCommand case 'B': processGroupManagerFunction(); break; + case 'c': + case 'C': + processAccelFunction(); + break; case 'q': case 'Q': done = true; @@ -753,6 +759,75 @@ class ProcessMenuCommand /** * */ + private void showAccelFunctionMenu() + { + ReaderUtil.clearScreen(); + System.out.println( "CHOOSE ACCEL MANAGER FUNCTION" ); + System.out.println( "1. Create Session" ); + System.out.println( "2. Check Access - RBAC" ); + System.out.println( "3. Session Roles" ); + System.out.println( "4. Add Active Role to Session" ); + System.out.println( "5. Drop Active Role from Session" ); + System.out.println( "6. Delete Session" ); + System.out.println( "Enter q or Q to return to previous menu" ); + } + + + /** + * + */ + void processAccelFunction() + { + BufferedReader br = new BufferedReader( new InputStreamReader( System.in ) ); + boolean done = false; + int input; + + try + { + while ( !done ) + { + showAccelFunctionMenu(); + input = br.read(); + switch ( input ) + { + case '1': + accelConsole.createSession(); + break; + case '2': + accelConsole.checkAccess(); + break; + case '3': + accelConsole.sessionRoles(); + break; + case '4': + accelConsole.addActiveRole(); + break; + case '5': + accelConsole.dropActiveRole(); + break; + case '6': + accelConsole.deleteSession(); + break; + case 'q': + case 'Q': + done = true; + break; + default: + break; + } + } + } + catch ( Exception e ) + { + LOG.error( "Exception caught in processAccelFunction = " + e ); + e.printStackTrace(); + } + } + + + /** + * + */ void processPasswordPolicyFunction() { BufferedReader br = new BufferedReader( new InputStreamReader( System.in ) );