Class SecureASTCustomizer.SecuringCodeVisitor
- java.lang.Object
-
- org.codehaus.groovy.control.customizers.SecureASTCustomizer.SecuringCodeVisitor
-
- All Implemented Interfaces:
GroovyCodeVisitor
- Enclosing class:
- SecureASTCustomizer
protected class SecureASTCustomizer.SecuringCodeVisitor extends Object implements GroovyCodeVisitor
This visitor directly implements theGroovyCodeVisitorinterface instead of using theCodeVisitorSupportclass 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 Modifier Constructor Description protectedSecuringCodeVisitor()
-
Method Summary
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.codehaus.groovy.ast.GroovyCodeVisitor
visitEmptyExpression, visitListOfExpressions
-
-
-
-
Method Detail
-
assertStatementAuthorized
protected void assertStatementAuthorized(Statement statement) throws SecurityException
Checks that a given statement is either in the whitelist or not in the blacklist.- Parameters:
statement- the statement to be checked- Throws:
SecurityException- if usage of this statement class is forbidden
-
assertExpressionAuthorized
protected void assertExpressionAuthorized(Expression expression) throws SecurityException
Checks that a given expression is either in the whitelist or not in the blacklist.- Parameters:
expression- the expression to be checked- Throws:
SecurityException- if usage of this expression class is forbidden
-
assertTokenAuthorized
protected void assertTokenAuthorized(Token token) throws SecurityException
Checks that a given token is either in the whitelist or not in the blacklist.- Parameters:
token- the token to be checked- Throws:
SecurityException- if usage of this token is forbidden
-
visitBlockStatement
public void visitBlockStatement(BlockStatement block)
- Specified by:
visitBlockStatementin interfaceGroovyCodeVisitor
-
visitForLoop
public void visitForLoop(ForStatement forLoop)
- Specified by:
visitForLoopin interfaceGroovyCodeVisitor
-
visitWhileLoop
public void visitWhileLoop(WhileStatement loop)
- Specified by:
visitWhileLoopin interfaceGroovyCodeVisitor
-
visitDoWhileLoop
public void visitDoWhileLoop(DoWhileStatement loop)
- Specified by:
visitDoWhileLoopin interfaceGroovyCodeVisitor
-
visitIfElse
public void visitIfElse(IfStatement ifElse)
- Specified by:
visitIfElsein interfaceGroovyCodeVisitor
-
visitExpressionStatement
public void visitExpressionStatement(ExpressionStatement statement)
- Specified by:
visitExpressionStatementin interfaceGroovyCodeVisitor
-
visitReturnStatement
public void visitReturnStatement(ReturnStatement statement)
- Specified by:
visitReturnStatementin interfaceGroovyCodeVisitor
-
visitAssertStatement
public void visitAssertStatement(AssertStatement statement)
- Specified by:
visitAssertStatementin interfaceGroovyCodeVisitor
-
visitTryCatchFinally
public void visitTryCatchFinally(TryCatchStatement statement)
- Specified by:
visitTryCatchFinallyin interfaceGroovyCodeVisitor
-
visitEmptyStatement
public void visitEmptyStatement(EmptyStatement statement)
- Specified by:
visitEmptyStatementin interfaceGroovyCodeVisitor
-
visitSwitch
public void visitSwitch(SwitchStatement statement)
- Specified by:
visitSwitchin interfaceGroovyCodeVisitor
-
visitCaseStatement
public void visitCaseStatement(CaseStatement statement)
- Specified by:
visitCaseStatementin interfaceGroovyCodeVisitor
-
visitBreakStatement
public void visitBreakStatement(BreakStatement statement)
- Specified by:
visitBreakStatementin interfaceGroovyCodeVisitor
-
visitContinueStatement
public void visitContinueStatement(ContinueStatement statement)
- Specified by:
visitContinueStatementin interfaceGroovyCodeVisitor
-
visitThrowStatement
public void visitThrowStatement(ThrowStatement statement)
- Specified by:
visitThrowStatementin interfaceGroovyCodeVisitor
-
visitSynchronizedStatement
public void visitSynchronizedStatement(SynchronizedStatement statement)
- Specified by:
visitSynchronizedStatementin interfaceGroovyCodeVisitor
-
visitCatchStatement
public void visitCatchStatement(CatchStatement statement)
- Specified by:
visitCatchStatementin interfaceGroovyCodeVisitor
-
visitMethodCallExpression
public void visitMethodCallExpression(MethodCallExpression call)
- Specified by:
visitMethodCallExpressionin interfaceGroovyCodeVisitor
-
visitStaticMethodCallExpression
public void visitStaticMethodCallExpression(StaticMethodCallExpression call)
- Specified by:
visitStaticMethodCallExpressionin interfaceGroovyCodeVisitor
-
visitConstructorCallExpression
public void visitConstructorCallExpression(ConstructorCallExpression call)
- Specified by:
visitConstructorCallExpressionin interfaceGroovyCodeVisitor
-
visitTernaryExpression
public void visitTernaryExpression(TernaryExpression expression)
- Specified by:
visitTernaryExpressionin interfaceGroovyCodeVisitor
-
visitShortTernaryExpression
public void visitShortTernaryExpression(ElvisOperatorExpression expression)
- Specified by:
visitShortTernaryExpressionin interfaceGroovyCodeVisitor
-
visitBinaryExpression
public void visitBinaryExpression(BinaryExpression expression)
- Specified by:
visitBinaryExpressionin interfaceGroovyCodeVisitor
-
visitPrefixExpression
public void visitPrefixExpression(PrefixExpression expression)
- Specified by:
visitPrefixExpressionin interfaceGroovyCodeVisitor
-
visitPostfixExpression
public void visitPostfixExpression(PostfixExpression expression)
- Specified by:
visitPostfixExpressionin interfaceGroovyCodeVisitor
-
visitBooleanExpression
public void visitBooleanExpression(BooleanExpression expression)
- Specified by:
visitBooleanExpressionin interfaceGroovyCodeVisitor
-
visitClosureExpression
public void visitClosureExpression(ClosureExpression expression)
- Specified by:
visitClosureExpressionin interfaceGroovyCodeVisitor
-
visitLambdaExpression
public void visitLambdaExpression(LambdaExpression expression)
- Specified by:
visitLambdaExpressionin interfaceGroovyCodeVisitor
-
visitTupleExpression
public void visitTupleExpression(TupleExpression expression)
- Specified by:
visitTupleExpressionin interfaceGroovyCodeVisitor
-
visitMapExpression
public void visitMapExpression(MapExpression expression)
- Specified by:
visitMapExpressionin interfaceGroovyCodeVisitor
-
visitMapEntryExpression
public void visitMapEntryExpression(MapEntryExpression expression)
- Specified by:
visitMapEntryExpressionin interfaceGroovyCodeVisitor
-
visitListExpression
public void visitListExpression(ListExpression expression)
- Specified by:
visitListExpressionin interfaceGroovyCodeVisitor
-
visitRangeExpression
public void visitRangeExpression(RangeExpression expression)
- Specified by:
visitRangeExpressionin interfaceGroovyCodeVisitor
-
visitPropertyExpression
public void visitPropertyExpression(PropertyExpression expression)
- Specified by:
visitPropertyExpressionin interfaceGroovyCodeVisitor
-
visitAttributeExpression
public void visitAttributeExpression(AttributeExpression expression)
- Specified by:
visitAttributeExpressionin interfaceGroovyCodeVisitor
-
visitFieldExpression
public void visitFieldExpression(FieldExpression expression)
- Specified by:
visitFieldExpressionin interfaceGroovyCodeVisitor
-
visitMethodPointerExpression
public void visitMethodPointerExpression(MethodPointerExpression expression)
- Specified by:
visitMethodPointerExpressionin interfaceGroovyCodeVisitor
-
visitMethodReferenceExpression
public void visitMethodReferenceExpression(MethodReferenceExpression expression)
- Specified by:
visitMethodReferenceExpressionin interfaceGroovyCodeVisitor
-
visitConstantExpression
public void visitConstantExpression(ConstantExpression expression)
- Specified by:
visitConstantExpressionin interfaceGroovyCodeVisitor
-
visitClassExpression
public void visitClassExpression(ClassExpression expression)
- Specified by:
visitClassExpressionin interfaceGroovyCodeVisitor
-
visitVariableExpression
public void visitVariableExpression(VariableExpression expression)
- Specified by:
visitVariableExpressionin interfaceGroovyCodeVisitor
-
visitDeclarationExpression
public void visitDeclarationExpression(DeclarationExpression expression)
- Specified by:
visitDeclarationExpressionin interfaceGroovyCodeVisitor
-
visitGStringExpression
public void visitGStringExpression(GStringExpression expression)
- Specified by:
visitGStringExpressionin interfaceGroovyCodeVisitor
-
visitArrayExpression
public void visitArrayExpression(ArrayExpression expression)
- Specified by:
visitArrayExpressionin interfaceGroovyCodeVisitor
-
visitSpreadExpression
public void visitSpreadExpression(SpreadExpression expression)
- Specified by:
visitSpreadExpressionin interfaceGroovyCodeVisitor
-
visitSpreadMapExpression
public void visitSpreadMapExpression(SpreadMapExpression expression)
- Specified by:
visitSpreadMapExpressionin interfaceGroovyCodeVisitor
-
visitNotExpression
public void visitNotExpression(NotExpression expression)
- Specified by:
visitNotExpressionin interfaceGroovyCodeVisitor
-
visitUnaryMinusExpression
public void visitUnaryMinusExpression(UnaryMinusExpression expression)
- Specified by:
visitUnaryMinusExpressionin interfaceGroovyCodeVisitor
-
visitUnaryPlusExpression
public void visitUnaryPlusExpression(UnaryPlusExpression expression)
- Specified by:
visitUnaryPlusExpressionin interfaceGroovyCodeVisitor
-
visitBitwiseNegationExpression
public void visitBitwiseNegationExpression(BitwiseNegationExpression expression)
- Specified by:
visitBitwiseNegationExpressionin interfaceGroovyCodeVisitor
-
visitCastExpression
public void visitCastExpression(CastExpression expression)
- Specified by:
visitCastExpressionin interfaceGroovyCodeVisitor
-
visitArgumentlistExpression
public void visitArgumentlistExpression(ArgumentListExpression expression)
- Specified by:
visitArgumentlistExpressionin interfaceGroovyCodeVisitor
-
visitClosureListExpression
public void visitClosureListExpression(ClosureListExpression closureListExpression)
- Specified by:
visitClosureListExpressionin interfaceGroovyCodeVisitor
-
visitBytecodeExpression
public void visitBytecodeExpression(BytecodeExpression expression)
- Specified by:
visitBytecodeExpressionin interfaceGroovyCodeVisitor
-
-