Class SecureASTCustomizer.SecuringCodeVisitor
java.lang.Object
org.codehaus.groovy.control.customizers.SecureASTCustomizer.SecuringCodeVisitor
- All Implemented Interfaces:
GroovyCodeVisitor
- Enclosing class:
- SecureASTCustomizer
This visitor directly implements the
GroovyCodeVisitor interface instead of using the CodeVisitorSupport class to make sure that future features of the language gets managed by this visitor. Thus,
adding a new feature would result in a compilation error if this visitor is not updated.-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voidassertExpressionAuthorized(Expression expression)Checks that a given expression is either in the allowed list or not in the disallowed list.protected voidassertStatementAuthorized(Statement statement)Checks that a given statement is either in the allowed list or not in the disallowed list.protected voidassertTokenAuthorized(Token token)Checks that a given token is either in the allowed list or not in the disallowed list.protected ClassNodegetExpressionType(ClassNode objectExpressionType)voidvisitArgumentlistExpression(ArgumentListExpression expression)voidvisitArrayExpression(ArrayExpression expression)voidvisitAssertStatement(AssertStatement statement)voidvisitAttributeExpression(AttributeExpression expression)voidvisitBinaryExpression(BinaryExpression expression)voidvisitBitwiseNegationExpression(BitwiseNegationExpression expression)voidvisitBlockStatement(BlockStatement block)voidvisitBooleanExpression(BooleanExpression expression)voidvisitBreakStatement(BreakStatement statement)voidvisitBytecodeExpression(BytecodeExpression expression)voidvisitCaseStatement(CaseStatement statement)voidvisitCastExpression(CastExpression expression)voidvisitCatchStatement(CatchStatement statement)voidvisitClassExpression(ClassExpression expression)voidvisitClosureExpression(ClosureExpression expression)voidvisitClosureListExpression(ClosureListExpression closureListExpression)voidvisitConstantExpression(ConstantExpression expression)voidvoidvisitContinueStatement(ContinueStatement statement)voidvisitDeclarationExpression(DeclarationExpression expression)voidvisitDoWhileLoop(DoWhileStatement loop)voidvisitEmptyStatement(EmptyStatement statement)voidvisitExpressionStatement(ExpressionStatement statement)voidvisitFieldExpression(FieldExpression expression)voidvisitForLoop(ForStatement forLoop)voidvisitGStringExpression(GStringExpression expression)voidvisitIfElse(IfStatement ifElse)voidvisitLambdaExpression(LambdaExpression expression)voidvisitListExpression(ListExpression expression)voidvisitMapEntryExpression(MapEntryExpression expression)voidvisitMapExpression(MapExpression expression)voidvoidvisitMethodPointerExpression(MethodPointerExpression expression)voidvisitMethodReferenceExpression(MethodReferenceExpression expression)voidvisitNotExpression(NotExpression expression)voidvisitPostfixExpression(PostfixExpression expression)voidvisitPrefixExpression(PrefixExpression expression)voidvisitPropertyExpression(PropertyExpression expression)voidvisitRangeExpression(RangeExpression expression)voidvisitReturnStatement(ReturnStatement statement)voidvisitShortTernaryExpression(ElvisOperatorExpression expression)voidvisitSpreadExpression(SpreadExpression expression)voidvisitSpreadMapExpression(SpreadMapExpression expression)voidvoidvisitSwitch(SwitchStatement statement)voidvisitSynchronizedStatement(SynchronizedStatement statement)voidvisitTernaryExpression(TernaryExpression expression)voidvisitThrowStatement(ThrowStatement statement)voidvisitTryCatchFinally(TryCatchStatement statement)voidvisitTupleExpression(TupleExpression expression)voidvisitUnaryMinusExpression(UnaryMinusExpression expression)voidvisitUnaryPlusExpression(UnaryPlusExpression expression)voidvisitVariableExpression(VariableExpression expression)voidvisitWhileLoop(WhileStatement loop)Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.codehaus.groovy.ast.GroovyCodeVisitor
visit, visit, visitEmptyExpression, visitListOfExpressions
-
Constructor Details
-
SecuringCodeVisitor
protected SecuringCodeVisitor()
-
-
Method Details
-
assertStatementAuthorized
Checks that a given statement is either in the allowed list or not in the disallowed list.- Parameters:
statement- the statement to be checked- Throws:
SecurityException- if usage of this statement class is forbidden
-
assertExpressionAuthorized
Checks that a given expression is either in the allowed list or not in the disallowed list.- Parameters:
expression- the expression to be checked- Throws:
SecurityException- if usage of this expression class is forbidden
-
getExpressionType
-
assertTokenAuthorized
Checks that a given token is either in the allowed list or not in the disallowed list.- Parameters:
token- the token to be checked- Throws:
SecurityException- if usage of this token is forbidden
-
visitBlockStatement
- Specified by:
visitBlockStatementin interfaceGroovyCodeVisitor
-
visitForLoop
- Specified by:
visitForLoopin interfaceGroovyCodeVisitor
-
visitWhileLoop
- Specified by:
visitWhileLoopin interfaceGroovyCodeVisitor
-
visitDoWhileLoop
- Specified by:
visitDoWhileLoopin interfaceGroovyCodeVisitor
-
visitIfElse
- Specified by:
visitIfElsein interfaceGroovyCodeVisitor
-
visitExpressionStatement
- Specified by:
visitExpressionStatementin interfaceGroovyCodeVisitor
-
visitReturnStatement
- Specified by:
visitReturnStatementin interfaceGroovyCodeVisitor
-
visitAssertStatement
- Specified by:
visitAssertStatementin interfaceGroovyCodeVisitor
-
visitTryCatchFinally
- Specified by:
visitTryCatchFinallyin interfaceGroovyCodeVisitor
-
visitEmptyStatement
- Specified by:
visitEmptyStatementin interfaceGroovyCodeVisitor
-
visitSwitch
- Specified by:
visitSwitchin interfaceGroovyCodeVisitor
-
visitCaseStatement
- Specified by:
visitCaseStatementin interfaceGroovyCodeVisitor
-
visitBreakStatement
- Specified by:
visitBreakStatementin interfaceGroovyCodeVisitor
-
visitContinueStatement
- Specified by:
visitContinueStatementin interfaceGroovyCodeVisitor
-
visitThrowStatement
- Specified by:
visitThrowStatementin interfaceGroovyCodeVisitor
-
visitSynchronizedStatement
- Specified by:
visitSynchronizedStatementin interfaceGroovyCodeVisitor
-
visitCatchStatement
- Specified by:
visitCatchStatementin interfaceGroovyCodeVisitor
-
visitMethodCallExpression
- Specified by:
visitMethodCallExpressionin interfaceGroovyCodeVisitor
-
visitStaticMethodCallExpression
- Specified by:
visitStaticMethodCallExpressionin interfaceGroovyCodeVisitor
-
visitConstructorCallExpression
- Specified by:
visitConstructorCallExpressionin interfaceGroovyCodeVisitor
-
visitTernaryExpression
- Specified by:
visitTernaryExpressionin interfaceGroovyCodeVisitor
-
visitShortTernaryExpression
- Specified by:
visitShortTernaryExpressionin interfaceGroovyCodeVisitor
-
visitBinaryExpression
- Specified by:
visitBinaryExpressionin interfaceGroovyCodeVisitor
-
visitPrefixExpression
- Specified by:
visitPrefixExpressionin interfaceGroovyCodeVisitor
-
visitPostfixExpression
- Specified by:
visitPostfixExpressionin interfaceGroovyCodeVisitor
-
visitBooleanExpression
- Specified by:
visitBooleanExpressionin interfaceGroovyCodeVisitor
-
visitClosureExpression
- Specified by:
visitClosureExpressionin interfaceGroovyCodeVisitor
-
visitLambdaExpression
- Specified by:
visitLambdaExpressionin interfaceGroovyCodeVisitor
-
visitTupleExpression
- Specified by:
visitTupleExpressionin interfaceGroovyCodeVisitor
-
visitMapExpression
- Specified by:
visitMapExpressionin interfaceGroovyCodeVisitor
-
visitMapEntryExpression
- Specified by:
visitMapEntryExpressionin interfaceGroovyCodeVisitor
-
visitListExpression
- Specified by:
visitListExpressionin interfaceGroovyCodeVisitor
-
visitRangeExpression
- Specified by:
visitRangeExpressionin interfaceGroovyCodeVisitor
-
visitPropertyExpression
- Specified by:
visitPropertyExpressionin interfaceGroovyCodeVisitor
-
visitAttributeExpression
- Specified by:
visitAttributeExpressionin interfaceGroovyCodeVisitor
-
visitFieldExpression
- Specified by:
visitFieldExpressionin interfaceGroovyCodeVisitor
-
visitMethodPointerExpression
- Specified by:
visitMethodPointerExpressionin interfaceGroovyCodeVisitor
-
visitMethodReferenceExpression
- Specified by:
visitMethodReferenceExpressionin interfaceGroovyCodeVisitor
-
visitConstantExpression
- Specified by:
visitConstantExpressionin interfaceGroovyCodeVisitor
-
visitClassExpression
- Specified by:
visitClassExpressionin interfaceGroovyCodeVisitor
-
visitVariableExpression
- Specified by:
visitVariableExpressionin interfaceGroovyCodeVisitor
-
visitDeclarationExpression
- Specified by:
visitDeclarationExpressionin interfaceGroovyCodeVisitor
-
visitGStringExpression
- Specified by:
visitGStringExpressionin interfaceGroovyCodeVisitor
-
visitArrayExpression
- Specified by:
visitArrayExpressionin interfaceGroovyCodeVisitor
-
visitSpreadExpression
- Specified by:
visitSpreadExpressionin interfaceGroovyCodeVisitor
-
visitSpreadMapExpression
- Specified by:
visitSpreadMapExpressionin interfaceGroovyCodeVisitor
-
visitNotExpression
- Specified by:
visitNotExpressionin interfaceGroovyCodeVisitor
-
visitUnaryMinusExpression
- Specified by:
visitUnaryMinusExpressionin interfaceGroovyCodeVisitor
-
visitUnaryPlusExpression
- Specified by:
visitUnaryPlusExpressionin interfaceGroovyCodeVisitor
-
visitBitwiseNegationExpression
- Specified by:
visitBitwiseNegationExpressionin interfaceGroovyCodeVisitor
-
visitCastExpression
- Specified by:
visitCastExpressionin interfaceGroovyCodeVisitor
-
visitArgumentlistExpression
- Specified by:
visitArgumentlistExpressionin interfaceGroovyCodeVisitor
-
visitClosureListExpression
- Specified by:
visitClosureListExpressionin interfaceGroovyCodeVisitor
-
visitBytecodeExpression
- Specified by:
visitBytecodeExpressionin interfaceGroovyCodeVisitor
-