Commit 72f66455 authored by Jonathan Shahen's avatar Jonathan Shahen

init - crashes on "testcases/mixed/test3.spec"

parents
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
<classpathentry kind="lib" path="lib/antlr-3.2.jar"/>
<classpathentry kind="lib" path="lib/stringtemplate.jar"/>
<classpathentry kind="output" path="bin"/>
</classpath>
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>Mohawk 2.0</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
org.eclipse.jdt.core.compiler.compliance=1.8
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.source=1.8
/********************************************************************
* PROGRAM NAME: Mohawk - A Model Checker for ARBAC Policies
*
* AUTHORS: Karthick Jayaraman
*
* BEGIN DATE: October, 2009
*
* LICENSE: Please view LICENSE file in the home dir of this Program
********************************************************************/
Primary Authors
---------------------------------
* Karthick Jayaraman
Syracuse University
* Vijay Ganesh
MIT
* Mahesh Tripunitara
University of Waterloo
Other Significant Author
------------------------
Authors who contributed some code
---------------------------------------
/********************************************************************
* PROGRAM NAME: Mohawk - A Model Checker for ARBAC Policies
*
* AUTHORS: Karthick Jayaraman
*
* BEGIN DATE: October, 2009
*
* LICENSE: Please view LICENSE file in the home dir of this Program
********************************************************************/
SVN command to checkout:
svn checkout http://mohawk.googlecode.com/svn/trunk/ mohawk-read-only
/********************************************************************
* PROGRAM NAME: Mohawk - A Tool for Finding Errors in ARBAC Policies
*
* AUTHORS: Karthick Jayaraman
*
* BEGIN DATE: October, 2009
*
* LICENSE: Please view LICENSE file in the home dir of this Program
********************************************************************/
Installation, configuration and use of Mohawk tool is very
straightforward. Mohawk has been primarily tested on Linux and Mac
OS. Therefore, our installation instructions assume you are using
Linux or Mac systems. We will test and release a windows version at a
later time.
Here are the steps to use Moahawk:
1. Install NuSMV. You can obtain the NuSMV source code / binary from
following site: http://nusmv.irst.itc.it/.
2. The Mohawk tool requires the latest version of JVM installed.
3. Mohawk is a Java-based tool and is available as a jar file. You may
either download the jar file from the website or build the jar file
using the sources.
Building jar file from sources:
3.1 Compile the Java sources and create the jar file using
the following ANT command : "ant dist". The build process
creates the jar file in the directory work/dist.
The Mohawk tool can be run from commandline as follows (after
completing step (1) and (2) ).
java -cp ./mohawk.jar mohawk.AbsRefine <ARBAC SPECFile>
If Mohawk finds an error, Mohawk displays the counter example from
NuSMV in the console. Mohawk writes the ARBAC spec used in each
refinement step to a file with the following naming convention:
rbacinstance<fileinstance>. Therefore, rbacinstance1 contains the
abstract model verified in step 1.
The MIT License
Copyright (c) 2010 Karthick Jayaraman
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
/********************************************************************
* PROGRAM NAME: Mohawk - A Model Checker for ARBAC Policies
*
* AUTHORS: Karthick Jayaraman
*
* BEGIN DATE: October, 2009
*
* LICENSE: Please view LICENSE file in the home dir of this Programtt
********************************************************************/
INSTALL
-------
See INSTALL file in the home dir of this program
LICENSE
-------
See LICENSE file in the home dir of this program
WEBSITE
-------
http://code.google.com/p/mohawk/
Google Code REPOSITORY
----------------------
svn checkout http://mohawk.googlecode.com/svn/trunk/ mohawk-read-only
DOCUMENTATION
-------------
Not published yet
PAPERS
------
check paper directory
<project name="mohawk" default="compile" basedir=".">
<description>Mohawk Tool Implementation.</description>
<!-- set global properties for this build -->
<property name="src" location="src"/>
<property name="lib" location="lib"/>
<property name="bin" location="bin" />
<property name="build" location="${bin}/build"/>
<property name="dist" location="${bin}/dist"/>
<target name="init">
<!-- create the build directory structure used by compile -->
<mkdir dir="${build}"/>
<!-- create the distribution directory -->
<mkdir dir="${dist}"/>
</target>
<target name="parser" depends="init" description="generate parser files" >
<!-- Create the parser files -->
<antlr target="${lib}/rbac.g" outputdirectory="${src}/mohawk" >
<classpath>
<pathelement location="${lib}/antlr-3.2.jar" />
</classpath>
</antlr>
</target>
<target name="compile" depends="parser" description="compile the source " >
<!-- compile the java code from ${src} into ${build} -->
<javac srcdir="${src}" destdir="${build}" debug="on" deprecation="true">
<classpath>
<fileset dir="${lib}">
<include name="**/*.jar"/>
</fileset>
</classpath>
</javac>
<copy file="${lib}/smvtemplate.st" todir="${build}/mohawk" />
<copy file="${lib}/transitions.st" todir="${build}/mohawk" />
<copy file="${lib}/rbac.st" todir="${build}/mohawk" />
</target>
<target name="dist" depends="compile" description="generate the distribution" >
<!-- put everything in ${build} into the jar file -->
<jar destfile="${dist}/${ant.project.name}.jar" basedir="${build}">
<manifest>
<attribute name="Built-By" value="${user.name}"/>
<attribute name="Main-Class" value="mohawk.RBAC2SMV" />
<attribute name="Class-Path" value="."/>
</manifest>
<fileset dir="${build}" />
<zipfileset src="${lib}/stringtemplate.jar" />
<zipfileset src="${lib}/antlr-3.2.jar" />
</jar>
</target>
<target name="clean" description="clean up">
<!-- delete the ${build} and ${dist} directory trees -->
<delete dir="${bin}"/>
<delete>
<fileset dir="." defaultexcludes="no">
<include name="**/*.*~"/>
</fileset>
</delete>
</target>
</project>
This directory contains the ARBAC policies for a bank comprising 10,
20, 30, and 40 branches. Please refer the actual casestudy for the
detailed description, and the PDF file is available at:
http://code.google.com/p/mohawk/downloads/detail?name=casestudy.pdf&can=2&q=.
The policy files are available in the following two directories:
1) Shallow - This directory contains the four policies with the "First
Error".
2) Deep - This directory contains the four policies with the "Second
Error".
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Roles role0 role1 role2 role3;
Users user0 user1 user2 user3 user4;
UA <user4,role3>;
CR <FALSE,role2>;
CA <role3,role2&role1,role0> <role3,-role1,role0> <role3,role2&-role1,role0> <role3,role2&role0,role1> <role3,role2&-role0,role1> <role3,-role0,role1> <role3,role1&role0,role2> <role3,-role1&role0,role2>;
ADMIN user4;
SPEC user1 role1;
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
Roles role0 role1 role2 role3 role4 role5;
Users user0 user1 user2 user3 user4 user5 user6 user7 user8 user9;
UA <user9,role5>;
CR <FALSE,role4> <role5,role0> <role5,role3>;
CA <role5,TRUE,role0> <role5,role1&role3,role0> <role5,role4&-role3,role0> <role5,role3,role0> <role5,role2&role3&role0,role1> <role5,-role2&role4&role3,role1> <role5,role2&role4,role1> <role5,-role2&role0,role1> <role5,role1,role2> <role5,-role1&role0,role2> <role5,role1&role3,role2> <role5,role2&role4,role3> <role5,-role4&role1,role3> <role5,role4&role1,role3> <role5,TRUE,role3> <role5,role2,role4> <role5,-role2&role1,role4> <role5,role2&role1&role0,role4> <role5,-role2&role3&role0,role4>;
ADMIN user9;
SPEC user1 role1;
\ No newline at end of file
Roles role0 role1 role2 role3 role4 role5 role6 role7 role8 role9 role10 role11 role12 role13 role14 role15 role16 role17 role18 role19 role20;
Users user0 user1 user2 user3 user4 user5 user6 user7 user8 user9 user10 user11 user12 user13 user14 user15 user16 user17 user18 user19 user20 user21 user22 user23 user24 user25 user26 user27 user28 user29 user30 user31 user32 user33 user34 user35 user36 user37 user38 user39 user40 user41 user42 user43 user44 user45 user46 user47 user48 user49;
UA <user49,role20>;
CR <role20,role1> <FALSE,role17> <role20,role9> <role20,role11> <role20,role15> <role20,role18> <role20,role10> <role20,role19> <role20,role7> <role20,role14> <role20,role6> <role20,role3> <role20,role13>;
CA <role20,TRUE,role0> <role20,role1,role0> <role20,role19&-role1&role14,role0> <role20,role13&role1&role10,role0> <role20,role6&role12,role1> <role20,-role12,role1> <role20,role12&role0,role1> <role20,role16&-role12,role1> <role20,role13&role4&role1,role2> <role20,-role1&role7,role2> <role20,role1&role12,role2> <role20,-role1,role2> <role20,role6,role3> <role20,TRUE,role3> <role20,-role6&role1,role3> <role20,role12,role4> <role20,role16&-role12,role4> <role20,role19&role3&role12,role4> <role20,role1&role18&-role12,role4> <role20,role8&role6&role11,role5> <role20,role17&role2&-role6,role5> <role20,role6,role5> <role20,-role6&role7,role5> <role20,role4&role5,role6> <role20,-role4,role6> <role20,role2&role4&role5,role6> <role20,role15&-role4&role10,role6> <role20,role9&role5,role7> <role20,role1&-role5,role7> <role20,role3&role5,role7> <role20,role15&role4&-role5,role7> <role20,role13,role8> <role20,role2&-role13&role11,role8> <role20,role15&role13,role8> <role20,-role13&role0,role8> <role20,role4&role19&role6,role9> <role20,-role4&role19,role9> <role20,role2&role4,role9> <role20,-role4,role9> <role20,role17&role9&role0,role10> <role20,-role0,role10> <role20,role1&role0,role10> <role20,role2&role15&role19,role11> <role20,-role2&role19&role5,role11> <role20,role2,role11> <role20,-role2,role11> <role20,TRUE,role12> <role20,role3&role5,role12> <role20,role13&-role5,role12> <role20,role2,role13> <role20,-role2&role19&role14,role13> <role20,-role2&role4,role13> <role20,TRUE,role14> <role20,role2&role6&role1,role14> <role20,-role1,role14> <role20,role1,role14> <role20,role2,role15> <role20,-role2&role10,role15> <role20,-role2&role16&role0,role15> <role20,role13&role12&role0,role16> <role20,role13&-role12,role16> <role20,role17&role12,role16> <role20,role19&role18&-role12,role16> <role20,role4&role14,role17> <role20,-role14,role17> <role20,role14,role17> <role20,role19&-role14,role17> <role20,role5&role12,role18> <role20,role10&-role5,role18> <role20,role15&role16&role5,role18> <role20,role16&-role5&role12,role18> <role20,role15&role8&role6,role19> <role20,TRUE,role19> <role20,-role15,role19> <role20,role15,role19>;
ADMIN user49;
SPEC user41 role10;
\ No newline at end of file
Roles role0 role1 role2 role3 role4 role5 role6 role7 role8 role9 role10 role11 role12 role13 role14 role15 role16 role17 role18 role19 role20 role21 role22 role23 role24 role25 role26 role27 role28 role29 role30 role31 role32 role33 role34 role35 role36 role37 role38 role39 role40;
Users user0 user1 user2 user3 user4 user5 user6 user7 user8 user9 user10 user11 user12 user13 user14 user15 user16 user17 user18 user19 user20 user21 user22 user23 user24 user25 user26 user27 user28 user29 user30 user31 user32 user33 user34 user35 user36 user37 user38 user39 user40 user41 user42 user43 user44 user45 user46 user47 user48 user49 user50 user51 user52 user53 user54 user55 user56 user57 user58 user59 user60 user61 user62 user63 user64 user65 user66 user67 user68 user69 user70 user71 user72 user73 user74 user75 user76 user77 user78 user79 user80 user81 user82 user83 user84 user85 user86 user87 user88 user89 user90 user91 user92 user93 user94 user95 user96 user97 user98 user99;
UA <user99,role40>;
CR <role40,role38> <role40,role36> <role40,role1> <role40,role30> <role40,role5> <role40,role31> <role40,role24> <role40,role8> <role40,role32> <role40,role0> <role40,role22> <role40,role25> <role40,role10> <role40,role27> <role40,role23> <role40,role9> <role40,role4> <role40,role21> <role40,role15> <role40,role35> <role40,role16> <role40,role20>;
CA <role40,role7,role0> <role40,-role7,role0> <role40,role4&role13&role7,role0> <role40,role28&-role7,role0> <role40,role21,role1> <role40,-role21&role37&role7,role1> <role40,role19&role21,role1> <role40,-role21&role14,role1> <role40,TRUE,role2> <role40,role17&role31&role25,role2> <role40,role9&-role31,role2> <role40,role26&role20,role3> <role40,role36&-role26&role33,role3> <role40,role26,role3> <role40,-role26&role35,role3> <role40,role23,role4> <role40,role32&-role23&role24,role4> <role40,-role23,role4> <role40,role4&role20&role7,role5> <role40,TRUE,role5> <role40,-role4&role10,role5> <role40,role9,role6> <role40,-role9,role6> <role40,role9&role16&role24,role6> <role40,-role9&role29&role39,role6> <role40,role8&role37&role27,role7> <role40,role17&-role8&role27,role7> <role40,role8,role7> <role40,role4&-role8&role22,role7> <role40,role23&role35&role3,role8> <role40,-role35,role8> <role40,role6&role35,role8> <role40,role29&-role35,role8> <role40,role12,role9> <role40,TRUE,role9> <role40,role18&-role12,role9> <role40,role8&role12,role9> <role40,role11&role5,role10> <role40,role19&-role5,role10> <role40,role3&role5,role10> <role40,role34&role21&-role5,role10> <role40,role31,role11> <role40,role32&-role31&role12,role11> <role40,TRUE,role11> <role40,role31&role27,role11> <role40,role2&role18,role12> <role40,-role2&role4&role26,role12> <role40,role2,role12> <role40,TRUE,role12> <role40,role34&role17&role21,role13> <role40,role23&-role21&role35,role13> <role40,role19&role21,role13> <role40,-role21&role16&role39,role13> <role40,role28&role22,role14> <role40,-role28,role14> <role40,role28&role24&role39,role14> <role40,role30,role15> <role40,-role30&role11&role24,role15> <role40,role30&role24,role15> <role40,TRUE,role15> <role40,role10,role16> <role40,role37&-role10&role27,role16> <role40,role35&role25&role10,role16> <role40,TRUE,role16> <role40,role26&role20,role17> <role40,role9&role23&-role20,role17> <role40,role8&role38&role20,role17> <role40,role8&-role20&role22,role17> <role40,role4&role36,role18> <role40,-role4&role19,role18> <role40,role2&role4,role18> <role40,-role4&role12&role27,role18> <role40,role17&role7,role19> <role40,TRUE,role19> <role40,-role17&role15&role4,role19> <role40,role17,role19> <role40,role11&role5,role20> <role40,-role5,role20> <role40,role5&role22,role20> <role40,role14&role10&-role5,role20> <role40,role38&role29,role21> <role40,-role38,role21> <role40,role38&role35,role21> <role40,role34&-role38,role21> <role40,role30&role39,role22> <role40,-role39,role22> <role40,role39&role27,role22> <role40,role14&-role39,role22> <role40,role8&role22,role23> <role40,TRUE,role23> <role40,role15&role11&-role22,role23> <role40,role22,role23> <role40,role8,role24> <role40,-role8&role31&role3,role24> <role40,role8&role0,role24> <role40,-role8&role20,role24> <role40,role30&role19&role33,role25> <role40,role32&-role30&role26,role25> <role40,role30&role22,role25> <role40,-role30&role22,role25> <role40,role19&role22,role26> <role40,role21&role29&-role22,role26> <role40,role12&role22,role26> <role40,role8&-role22,role26> <role40,role21&role1&role29,role27> <role40,-role1&role10&role7,role27> <role40,role1&role20&role0,role27> <role40,role36&-role1&role37,role27> <role40,role20&role29&role10,role28> <role40,role2&-role10&role27,role28> <role40,role16&role10,role28> <role40,-role10,role28> <role40,role4&role16,role29> <role40,-role4&role9,role29> <role40,TRUE,role29> <role40,role4&role38,role29> <role40,role16&role10,role30> <role40,role33&-role10,role30> <role40,role37&role10&role7,role30> <role40,role15&-role10,role30> <role40,role17&role26,role31> <role40,-role26&role1,role31> <role40,TRUE,role31> <role40,role26&role24,role31> <role40,TRUE,role32> <role40,role30&role33&role18,role32> <role40,-role33&role28&role18,role32> <role40,role30&role27,role33> <role40,-role27,role33> <role40,role27,role33> <role40,role26&role38&-role27,role33> <role40,TRUE,role34> <role40,role19&role36&role10,role34> <role40,-role19,role34> <role40,role19&role23&role25,role34> <role40,role15&role33,role35> <role40,role36&-role33&role18,role35> <role40,role33,role35> <role40,role19&-role33&role0,role35> <role40,role34,role36> <role40,-role34&role18&role14,role36> <role40,TRUE,role36> <role40,role17&role20,role37> <role40,-role17&role32&role38,role37> <role40,role17&role33&role20,role37> <role40,-role17&role34&role28,role37> <role40,role15&role29&role35,role38> <role40,-role35,role38> <role40,role6&role35,role38> <role40,role26&role16&-role35,role38> <role40,role37,role39> <role40,-role37&role7,role39> <role40,role20&role37,role39> <role40,role38&-role37,role39>;
ADMIN user99;
SPEC user39 role26;
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Roles role0 role1 role2 role3;
Users user1 user4;
UA <user4,role3>;
CR ;
CA <role3,role1&role0,role2> <role3,-role1&role0,role2> <role3,role2&role1,role0> <role3,-role1,role0> <role3,role2&-role1,role0> <role3,role2&role0,role1> <role3,role2&-role0,role1> <role3,-role0,role1>;
ADMIN user4;
SPEC user1 role1;
This diff is collapsed.
This diff is collapsed.
Roles role0 role1 role2 role3 role4 role5;
Users user1 user9;
UA <user9,role5>;
CR ;
CA <role5,role1,role2> <role5,-role1&role0,role2> <role5,role1&role3,role2> <role5,TRUE,role0> <role5,role1&role3,role0> <role5,role4&-role3,role0> <role5,role3,role0> <role5,role2,role4> <role5,-role2&role1,role4> <role5,role2&role1&role0,role4> <role5,-role2&role3&role0,role4> <role5,role2&role3&role0,role1> <role5,-role2&role4&role3,role1> <role5,role2&role4,role1> <role5,-role2&role0,role1> <role5,role2&role4,role3> <role5,-role4&role1,role3> <role5,role4&role1,role3> <role5,TRUE,role3>;
ADMIN user9;
SPEC user1 role1;
\ No newline at end of file
Roles role0 role1 role10 role11 role12 role13 role14 role15 role16 role17 role18 role19 role2 role3 role4 role5 role6 role7 role8 role9 role20;
Users user41 user49;
UA <user49,role20>;
CR ;
CA <role20,role19&role6&role4,role9> <role20,role19&-role4,role9> <role20,role4&role2,role9> <role20,-role4,role9> <role20,TRUE,role14> <role20,role6&role1&role2,role14> <role20,-role1,role14> <role20,role1,role14> <role20,role1&role4&role13,role2> <role20,role7&-role1,role2> <role20,role12&role1,role2> <role20,-role1,role2> <role20,role5&role12,role18> <role20,role10&-role5,role18> <role20,role5&role16&role15,role18> <role20,-role5&role12&role16,role18> <role20,role9&role17&role0,role10> <role20,-role0,role10> <role20,role1&role0,role10> <role20,role2,role15> <role20,role10&-role2,role15> <role20,role16&-role2&role0,role15> <role20,role6&role8&role15,role19> <role20,TRUE,role19> <role20,-role15,role19> <role20,role15,role19> <role20,role13,role8> <role20,role11&role2&-role13,role8> <role20,role15&role13,role8> <role20,-role13&role0,role8> <role20,role6,role3> <role20,TRUE,role3> <role20,-role6&role1,role3> <role20,role12&role13&role0,role16> <role20,-role12&role13,role16> <role20,role12&role17,role16> <role20,-role12&role19&role18,role16> <role20,role5&role9,role7> <role20,-role5&role1,role7> <role20,role5&role3,role7> <role20,-role5&role4&role15,role7> <role20,TRUE,role0> <role20,role1,role0> <role20,role19&role14&-role1,role0> <role20,role10&role1&role13,role0> <role20,role2,role13> <role20,role19&role14&-role2,role13> <role20,role4&-role2,role13> <role20,role12,role4> <role20,-role12&role16,role4> <role20,role3&role12&role19,role4> <role20,-role12&role1&role18,role4> <role20,role5&role4,role6> <role20,-role4,role6> <role20,role5&role4&role2,role6> <role20,role10&-role4&role15,role6> <role20,role12&role6,role1> <role20,-role12,role1> <role20,role12&role0,role1> <role20,-role12&role16,role1> <role20,role14&role4,role17> <role20,-role14,role17> <role20,role14,role17> <role20,role19&-role14,role17> <role20,TRUE,role12> <role20,role5&role3,role12> <role20,-role5&role13,role12> <role20,role6&role8&role11,role5> <role20,role17&-role6&role2,role5> <role20,role6,role5> <role20,role7&-role6,role5> <role20,role19&role15&role2,role11> <role20,role5&role19&-role2,role11> <role20,role2,role11> <role20,-role2,role11>;
ADMIN user49;
SPEC user41 role10;
\ No newline at end of file
Roles role0 role1 role10 role11 role12 role13 role14 role15 role16 role17 role18 role19 role2 role20 role21 role22 role23 role24 role25 role26 role27 role28 role29 role3 role30 role31 role32 role33 role34 role35 role36 role37 role38 role39 role4 role5 role6 role7 role8 role9 role40;
Users user39 user99;
UA <user99,role40>;
CR ;
CA <role40,role22&role28,role14> <role40,-role28,role14> <role40,role24&role28&role39,role14> <role40,role38&role29,role21> <role40,-role38,role21> <role40,role38&role35,role21> <role40,-role38&role34,role21> <role40,role34,role36> <role40,-role34&role14&role18,role36> <role40,TRUE,role36> <role40,role4&role16,role29> <role40,-role4&role9,role29> <role40,TRUE,role29> <role40,role4&role38,role29> <role40,role30,role15> <role40,role24&role11&-role30,role15> <role40,role24&role30,role15> <role40,TRUE,role15> <role40,role20&role17,role37> <role40,role38&-role17&role32,role37> <role40,role20&role17&role33,role37> <role40,-role17&role34&role28,role37> <role40,role22&role19,role26> <role40,-role22&role21&role29,role26> <role40,role22&role12,role26> <role40,-role22&role8,role26> <role40,role22&role8,role23> <role40,TRUE,role23> <role40,-role22&role11&role15,role23> <role40,role22,role23> <role40,role26&role17,role31> <role40,-role26&role1,role31> <role40,TRUE,role31> <role40,role24&role26,role31> <role40,role8,role24> <role40,role3&-role8&role31,role24> <role40,role8&role0,role24> <role40,role20&-role8,role24> <role40,role23,role4> <role40,role24&role32&-role23,role4> <role40,-role23,role4> <role40,role21,role1> <role40,role37&-role21&role7,role1> <role40,role19&role21,role1> <role40,role14&-role21,role1> <role40,role20&role26,role17> <role40,-role20&role23&role9,role17> <role40,role38&role20&role8,role17> <role40,role22&-role20&role8,role17> <role40,role39&role30,role22> <role40,-role39,role22> <role40,role39&role27,role22> <role40,-role39&role14,role22> <role40,role18&role2,role12> <role40,role4&role26&-role2,role12> <role40,role2,role12> <role40,TRUE,role12> <role40,TRUE,role34> <role40,role10&role36&role19,role34> <role40,-role19,role34> <role40,role19&role23&role25,role34> <role40,role37,role39> <role40,-role37&role7,role39> <role40,role20&role37,role39> <role40,role38&-role37,role39> <role40,role12,role9> <role40,TRUE,role9> <role40,-role12&role18,role9> <role40,role12&role8,role9> <role40,TRUE,role2> <role40,role17&role25&role31,role2> <role40,-role31&role9,role2> <role40,role4&role36,role18> <role40,-role4&role19,role18> <role40,role4&role2,role18> <role40,-role4&role12&role27,role18> <role40,role19&role30&role33,role25> <role40,role26&role32&-role30,role25> <role40,role22&role30,role25> <role40,role22&-role30,role25> <role40,role27&role30,role33> <role40,-role27,role33> <role40,role27,role33> <role40,role38&role26&-role27,role33> <role40,role11&role5,role10> <role40,role19&-role5,role10> <role40,role3&role5,role10> <role40,role34&role21&-role5,role10> <role40,role17&role7,role19> <role40,TRUE,role19> <role40,role4&-role17&role15,role19> <role40,role17,role19> <role40,role3&role23&role35,role8> <role40,-role35,role8> <role40,role6&role35,role8> <role40,-role35&role29,role8> <role40,role20&role26,role3> <role40,role36&-role26&role33,role3> <role40,role26,role3> <role40,-role26&role35,role3> <role40,TRUE,role32> <role40,role30&role18&role33,role32> <role40,role28&role18&-role33,role32> <role40,role10,role16> <role40,-role10&role37&role27,role16> <role40,role10&role25&role35,role16> <role40,TRUE,role16> <role40,role11&role5,role20> <role40,-role5,role20> <role40,role22&role5,role20> <role40,role10&role14&-role5,role20> <role40,role8&role37&role27,role7> <role40,role17&-role8&role27,role7> <role40,role8,role7> <role40,role4&role22&-role8,role7> <role40,role7,role0> <role40,-role7,role0> <role40,role4&role7&role13,role0> <role40,role28&-role7,role0> <role40,role17&role34&role21,role13> <role40,role23&role35&-role21,role13> <role40,role19&role21,role13> <role40,role16&role39&-role21,role13> <role40,role15&role33,role35> <role40,role36&role18&-role33,role35> <role40,role33,role35> <role40,role19&-role33&role0,role35> <role40,role1&role21&role29,role27> <role40,role10&-role1&role7,role27> <role40,role20&role1&role0,role27> <role40,role36&-role1&role37,role27> <role40,role35&role15&role29,role38> <role40,-role35,role38> <role40,role6&role35,role38> <role40,role26&role16&-role35,role38> <role40,role9,role6> <role40,-role9,role6> <role40,role24&role16&role9,role6> <role40,role39&-role9&role29,role6> <role40,role10&role16,role30> <role40,-role10&role33,role30> <role40,role10&role37&role7,role30> <role40,-role10&role15,role30> <role40,role31,role11> <role40,role12&role32&-role31,role11> <role40,TRUE,role11> <role40,role27&role31,role11> <role40,role10&role20&role29,role28> <role40,-role10&role27&role2,role28> <role40,role10&role16,role28> <role40,-role10,role28> <role40,role4&role20&role7,role5> <role40,TRUE,role5> <role40,-role4&role10,role5>;
ADMIN user99;
SPEC user39 role26;
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Roles role0 role1 role2 role3;
Users user0 user1 user2 user3 user4;
UA <user4,role3>;
CR <FALSE,role0> <FALSE,role2>;
CA <role3,role2,role0> <role3,role2&role1,role0> <role3,role2&role0,role1> <role3,TRUE,role1> <role3,role0,role1> <role3,role1&role0,role2> <role3,role0,role2> <role3,role1,role2> <role3,TRUE,role2>;
ADMIN user4;
SPEC user0 role1;
This diff is collapsed.
This diff is collapsed.
Roles role0 role1 role2 role3 role4 role5;
Users user0 user1 user2 user3 user4 user5 user6 user7 user8 user9;
UA <user9,role5>;
CR <role5,role0> <role5,role4> <role5,role2>;
CA <role5,role2,role0> <role5,TRUE,role0> <role5,role1,role0> <role5,role4,role1> <role5,role2&role4,role1> <role5,role2&role4&role3,role1> <role5,TRUE,role1> <role5,TRUE,role2> <role5,role1&role3&role0,role2> <role5,role4&role1&role0,role2> <role5,TRUE,role3> <role5,role4,role3> <role5,role2&role1&role0,role3> <role5,TRUE,role4> <role5,role1&role3&role0,role4> <role5,role2&role3&role0,role4> <role5,role2,role4>;
ADMIN user9;
SPEC user3 role4;
\ No newline at end of file
Roles role0 role1 role2 role3 role4 role5 role6 role7 role8 role9 role10 role11 role12 role13 role14 role15 role16 role17 role18 role19 role20;
Users user0 user1 user2 user3 user4 user5 user6 user7 user8 user9 user10 user11 user12 user13 user14 user15 user16 user17 user18 user19 user20 user21 user22 user23 user24 user25 user26 user27 user28 user29 user30 user31 user32 user33 user34 user35 user36 user37 user38 user39 user40 user41 user42 user43 user44 user45 user46 user47 user48 user49;
UA <user49,role20>;
CR <FALSE,role9> <FALSE,role2> <role20,role10> <role20,role7> <role20,role4> <role20,role11> <role20,role0> <role20,role1> <role20,role3> <role20,role13> <role20,role19>;
CA <role20,role15&role8&role9&role11,role0> <role20,TRUE,role0> <role20,role2&role3&role5&role12,role0> <role20,role10,role0> <role20,role2&role9,role1> <role20,role6&role11&role7,role1> <role20,role2&role4&role19&role12,role1> <role20,TRUE,role1> <role20,role11&role1&role10&role0,role2> <role20,role13&role3&role12,role2> <role20,role15&role3&role7,role2> <role20,role1&role10,role2> <role20,TRUE,role3> <role20,role18,role3> <role20,role0,role4> <role20,role15&role2&role5&role12,role4> <role20,role8&role18,role4> <role20,role14,role4> <role20,role17&role11&role10,role5> <role20,role6&role10&role0,role5> <role20,role2&role6,role5> <role20,TRUE,role5> <role20,role2&role14&role7,role6> <role20,role17&role3&role7,role6> <role20,role11&role7,role6> <role20,role13&role14&role10,role6> <role20,TRUE,role7> <role20,role13&role6,role7> <role20,role5,role7> <role20,role4&role16&role12,role7> <role20,role16&role18,role8> <role20,TRUE,role8> <role20,role15&role9&role6,role8> <role20,role13&role16&role5,role8> <role20,role4&role19,role9> <role20,role6&role18&role12,role9> <role20,role19&role3,role9> <role20,role2,role9> <role20,role2&role16,role10> <role20,TRUE,role10> <role20,role15&role16&role7,role10> <role20,role17&role11&role6&role12,role10> <role20,role2&role1&role14&role0,role11> <role20,TRUE,role11> <role20,role13&role6&role18,role11> <role20,role15&role9,role11> <role20,role9&role11&role14,role12> <role20,role9&role16,role12> <role20,role2&role10&role7,role12> <role20,role2,role12> <role20,role15&role9&role6,role13> <role20,role2&role4,role13> <role20,role15,role13> <role20,role8&role11&role6,role13> <role20,role11&role16&role5,role14> <role20,role6&role18&role7,role14> <role20,role18&role12,role14> <role20,role9,role14> <role20,role19&role11&role12&role5,role15> <role20,role8&role3&role10,role15> <role20,role2&role3&role14&role12,role15> <role20,role3,role15> <role20,TRUE,role16> <role20,role3,role16> <role20,role19&role11&role0,role16> <role20,role17&role15&role18,role16> <role20,TRUE,role17> <role20,role13&role8&role3&role10,role17> <role20,role9&role8&role16,role17> <role20,role11,role17> <role20,role15&role7&role12&role5,role18> <role20,role17&role15&role10,role18> <role20,role4&role8&role3&role10,role18> <role20,role8&role11,role18> <role20,role2&role8&role6&role14,role19> <role20,role6&role18&role7&role0,role19> <role20,role2,role19> <role20,role17,role19>;
ADMIN user49;
SPEC user41 role13;
\ No newline at end of file
Roles role0 role1 role2 role3 role4 role5 role6 role7 role8 role9 role10 role11 role12 role13 role14 role15 role16 role17 role18 role19 role20 role21 role22 role23 role24 role25 role26 role27 role28 role29 role30 role31 role32 role33 role34 role35 role36 role37 role38 role39 role40;
Users user0 user1 user2 user3 user4 user5 user6 user7 user8 user9 user10 user11 user12 user13 user14 user15 user16 user17 user18 user19 user20 user21 user22 user23 user24 user25 user26 user27 user28 user29 user30 user31 user32 user33 user34 user35 user36 user37 user38 user39 user40 user41 user42 user43 user44 user45 user46 user47 user48 user49 user50 user51 user52 user53 user54 user55 user56 user57 user58 user59 user60 user61 user62 user63 user64 user65 user66 user67 user68 user69 user70 user71 user72 user73 user74 user75 user76 user77 user78 user79 user80 user81 user82 user83 user84 user85 user86 user87 user88 user89 user90 user91 user92 user93 user94 user95 user96 user97 user98 user99;
UA <user99,role40>;
CR <role40,role20> <role40,role36> <role40,role29> <role40,role11> <role40,role23> <role40,role2> <role40,role9> <role40,role15> <role40,role3> <role40,role39> <role40,role34> <role40,role27> <role40,role31> <role40,role6> <role40,role24> <role40,role13> <role40,role8> <role40,role12> <role40,role25> <role40,role26> <role40,role35> <role40,role21> <role40,role4> <role40,role19> <role40,role10> <role40,role0> <role40,role37>;
CA <role40,role34&role30&role31,role0> <role40,role19&role28&role37,role0> <role40,role9&role12&role22,role0> <role40,role32&role26&role1&role35,role0> <role40,role31,role1> <role40,TRUE,role1> <role40,role17&role26&role38,role1> <role40,role27,role1> <role40,role34&role11&role3&role14,role2> <role40,role15&role21&role37,role2> <role40,role8&role29,role2> <role40,role4&role26&role11&role22,role2> <role40,role1,role3> <role40,role34,role3> <role40,role13&role23&role20,role3> <role40,role19,role3> <role40,TRUE,role4> <role40,role15&role6&role39,role4> <role40,role34&role32&role17&role10,role4> <role40,role31&role14&role24,role5> <role40,role19&role31&role1&role37,role5> <role40,role15&role26&role21&role20,role5> <role40,role0&role27,role5> <role40,role36&role23&role14&role5,role6> <role40,role33&role18&role7,role6> <role40,TRUE,role6> <role40,role38&role35,role6> <role40,TRUE,role7> <role40,role28&role27,role7> <role40,role9&role26&role6&role37,role7> <role40,role29,role8> <role40,role5,role8> <role40,role4&role22,role8> <role40,role34&role9&role28,role8> <role40,TRUE,role9> <role40,role23&role28&role39,role9> <role40,role15&role30&role24&role7,role9> <role40,role31&role24,role9> <role40,role25,role10> <role40,role17,role10> <role40,role16&role24&role27,role10> <role40,role34&role14&role3,role10> <role40,TRUE,role11> <role40,role17&role33&role20,role11> <role40,role8&role26&role18&role39,role11> <role40,role28&role37&role5,role11> <role40,role23&role26&role6&role0,role12> <role40,role37&role7,role12> <role40,role17&role13&role35,role12> <role40,role1&role35&role24&role5,role12> <role40,role23,role13> <role40,TRUE,role13> <role40,role31,role13> <role40,role9,role13> <role40,role13,role14> <role40,role11&role25,role14> <role40,role8&role24&role22,role14> <role40,role23&role27,role14> <role40,role3,role15> <role40,role1,role15> <role40,TRUE,role15> <role40,role34&role9&role26&role29,role15> <role40,role3&role25,role16> <role40,role4&role1,role16> <role40,role10&role7,role16> <role40,role9&role11&role29&role37,role16> <role40,role11&role3,role17> <role40,role9&role3,role17> <role40,role6,role17> <role40,role16&role18&role24&role27,role17> <role40,role17&role13&role23,role18> <role40,TRUE,role18> <role40,role1,role18> <role40,role9&role33&role14&role24,role18> <role40,role17&role9&role11,role19> <role40,role18&role25,role19> <role40,role26&role31,role19> <role40,role15&role36&role31&role37,role19> <role40,role30,role20> <role40,role17&role37,role20> <role40,TRUE,role20> <role40,role34&role15&role27,role20> <role40,role13&role16&role37,role21> <role40,role2&role3&role24&role27,role21> <role40,TRUE,role21> <role40,role34&role38&role37,role22> <role40,role20,role22> <role40,TRUE,role22> <role40,role36&role16&role35,role23> <role40,role1,role23> <role40,TRUE,role23> <role40,role2&role13&role30,role23> <role40,role0,role24> <role40,role34&role4&role6&role5,role24> <role40,role25,role24> <role40,TRUE,role24> <role40,role2,role25> <role40,role2&role9&role10&role27,role25> <role40,role2&role19&role21&role18,role25> <role40,role4&role33&role10,role25> <role40,role38,role26> <role40,role30&role19&role20,role26> <role40,role39,role26> <role40,role30&role16,role26> <role40,TRUE,role27> <role40,role5,role27> <role40,role3,role27> <role40,role4&role13&role9&role23,role28> <role40,TRUE,role28> <role40,role34&role30&role11,role28> <role40,role16&role12&role0&role22,role29> <role40,role2&role37,role29> <role40,TRUE,role29> <role40,TRUE,role30> <role40,role27,role30> <role40,role23&role11&role31&role0,role30> <role40,role2,role30> <role40,role6&role14,role31> <role40,TRUE,role31> <role40,role19&role1&role18&role25,role31> <role40,role34&role4&role36,role31> <role40,role9&role27,role32> <role40,role19&role38&role18,role32> <role40,role9&role1&role10,role32> <role40,role28&role6&role37,role32> <role40,role9&role16,role33> <role40,TRUE,role33> <role40,role19,role33> <role40,role17&role28&role6,role33> <role40,role11,role34> <role40,TRUE,role34> <role40,role13&role1,role34> <role40,role4&role1,role34> <role40,role37&role25,role35> <role40,role30&role28&role37&role10,role35> <role40,role6&role29,role35> <role40,TRUE,role35> <role40,role30&role26,role36> <role40,role14,role36> <role40,TRUE,role36> <role40,role31,role36> <role40,role28,role37> <role40,role15&role19&role3,role37> <role40,role32&role30,role37> <role40,role36,role37> <role40,role4,role38> <role40,role29&role39&role22,role38> <role40,role15&role29&role24,role38> <role40,role34&role4&role30&role33,role38> <role40,TRUE,role39> <role40,role28,role39>;
ADMIN user99;
SPEC user12 role39;
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
header {
package mohawk;
import java.util.Vector;
import java.util.Stack;
import java.util.HashMap;
import java.util.Map;
import mohawk.collections.PreCondProcessorInt;
}
class RBACParser extends Parser;
options { k=3; }
{
Vector<String> vRoles;
Vector<String> vUsers;
Vector<String> vAdmin;
Map<Integer, String> mRoleIndex;
Map<String, Integer> mRole2Index;
Map<Integer, String> mUserIndex;
Map<String,Vector<Integer>> mUA;
Map<String,Vector<CREntry>> mCR;
Map<String,Vector<CAEntry>> mCA;
PreCondProcessorInt preCndP;
Stack<Integer> stackOperators;
Vector<String> vSpec; // This vector holds two strings - user and role that will be used in the LTL formulae
// Indices for user and roles while parsing
// Each user has an index corresponding to the order in which the name appears in the list.
int iRoleIndex;
int iUserIndex;
public void initRbac() {
vRoles = new Vector<String>();
vUsers = new Vector<String>();
vAdmin = new Vector<String>();
mRoleIndex = new HashMap<Integer, String>();
mRole2Index = new HashMap<String,Integer>();
mUserIndex = new HashMap<Integer, String>();
mUA = new HashMap<String,Vector<Integer>>();
mCR = new HashMap<String,Vector<CREntry>>();
mCA = new HashMap<String,Vector<CAEntry>>();
vSpec = new Vector<String>();
}
public RBACInstance getRBAC() {
return new RBACInstance(vRoles, vUsers, vAdmin, mUA, mCR, mCA,vSpec);
}
public void setUA(String strUser, String strRole) {
Vector<Integer> vUserUA = mUA.get(strUser);
if(vUserUA == null)
{
vUserUA = new Vector<Integer>();
mUA.put(strUser,vUserUA);
}