[Java] Class SecureASTCustomizer.SecuringCodeVisitor

  • org.codehaus.groovy.control.customizers.SecureASTCustomizer.SecuringCodeVisitor
All Implemented Interfaces and Traits:
GroovyCodeVisitor
protected class SecureASTCustomizer.SecuringCodeVisitor

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.

Methods Summary

Methods
Type Params Return Type Name and description
protected void assertExpressionAuthorized(Expression expression)
Checks that a given expression is either in the allowed list or not in the disallowed list.
protected void assertStatementAuthorized(Statement statement)
Checks that a given statement is either in the allowed list or not in the disallowed list.
protected void assertTokenAuthorized(Token token)
Checks that a given token is either in the allowed list or not in the disallowed list.
protected ClassNode getExpressionType(ClassNode objectExpressionType)
public void visitArgumentlistExpression(ArgumentListExpression expression)
public void visitArrayExpression(ArrayExpression expression)
public void visitAssertStatement(AssertStatement statement)
public void visitAttributeExpression(AttributeExpression expression)
public void visitBinaryExpression(BinaryExpression expression)
public void visitBitwiseNegationExpression(BitwiseNegationExpression expression)
public void visitBlockStatement(BlockStatement block)
public void visitBooleanExpression(BooleanExpression expression)
public void visitBreakStatement(BreakStatement statement)
public void visitBytecodeExpression(BytecodeExpression expression)
public void visitCaseStatement(CaseStatement statement)
public void visitCastExpression(CastExpression expression)
public void visitCatchStatement(CatchStatement statement)
public void visitClassExpression(ClassExpression expression)
public void visitClosureExpression(ClosureExpression expression)
public void visitClosureListExpression(ClosureListExpression closureListExpression)
public void visitConstantExpression(ConstantExpression expression)
public void visitConstructorCallExpression(ConstructorCallExpression call)
public void visitContinueStatement(ContinueStatement statement)
public void visitDeclarationExpression(DeclarationExpression expression)
public void visitDoWhileLoop(DoWhileStatement loop)
public void visitEmptyStatement(EmptyStatement statement)
public void visitExpressionStatement(ExpressionStatement statement)
public void visitFieldExpression(FieldExpression expression)
public void visitForLoop(ForStatement forLoop)
public void visitGStringExpression(GStringExpression expression)
public void visitIfElse(IfStatement ifElse)
public void visitLambdaExpression(LambdaExpression expression)
public void visitListExpression(ListExpression expression)
public void visitMapEntryExpression(MapEntryExpression expression)
public void visitMapExpression(MapExpression expression)
public void visitMethodCallExpression(MethodCallExpression call)
public void visitMethodPointerExpression(MethodPointerExpression expression)
public void visitMethodReferenceExpression(MethodReferenceExpression expression)
public void visitNotExpression(NotExpression expression)
public void visitPostfixExpression(PostfixExpression expression)
public void visitPrefixExpression(PrefixExpression expression)
public void visitPropertyExpression(PropertyExpression expression)
public void visitRangeExpression(RangeExpression expression)
public void visitReturnStatement(ReturnStatement statement)
public void visitShortTernaryExpression(ElvisOperatorExpression expression)
public void visitSpreadExpression(SpreadExpression expression)
public void visitSpreadMapExpression(SpreadMapExpression expression)
public void visitStaticMethodCallExpression(StaticMethodCallExpression call)
public void visitSwitch(SwitchStatement statement)
public void visitSynchronizedStatement(SynchronizedStatement statement)
public void visitTernaryExpression(TernaryExpression expression)
public void visitThrowStatement(ThrowStatement statement)
public void visitTryCatchFinally(TryCatchStatement statement)
public void visitTupleExpression(TupleExpression expression)
public void visitUnaryMinusExpression(UnaryMinusExpression expression)
public void visitUnaryPlusExpression(UnaryPlusExpression expression)
public void visitVariableExpression(VariableExpression expression)
public void visitWhileLoop(WhileStatement loop)

Inherited Methods Summary

Inherited Methods
Methods inherited from class Name
class Object wait, wait, wait, equals, toString, hashCode, getClass, notify, notifyAll

Method Detail

protected void assertExpressionAuthorized(Expression expression)

Checks that a given expression is either in the allowed list or not in the disallowed list.

throws:
SecurityException if usage of this expression class is forbidden
Parameters:
expression - the expression to be checked

protected void assertStatementAuthorized(Statement statement)

Checks that a given statement is either in the allowed list or not in the disallowed list.

throws:
SecurityException if usage of this statement class is forbidden
Parameters:
statement - the statement to be checked

protected void assertTokenAuthorized(Token token)

Checks that a given token is either in the allowed list or not in the disallowed list.

throws:
SecurityException if usage of this token is forbidden
Parameters:
token - the token to be checked

protected ClassNode getExpressionType(ClassNode objectExpressionType)

@Override public void visitArgumentlistExpression(ArgumentListExpression expression)

@Override public void visitArrayExpression(ArrayExpression expression)

@Override public void visitAssertStatement(AssertStatement statement)

@Override public void visitAttributeExpression(AttributeExpression expression)

@Override public void visitBinaryExpression(BinaryExpression expression)

@Override public void visitBitwiseNegationExpression(BitwiseNegationExpression expression)

@Override public void visitBlockStatement(BlockStatement block)

@Override public void visitBooleanExpression(BooleanExpression expression)

@Override public void visitBreakStatement(BreakStatement statement)

@Override public void visitBytecodeExpression(BytecodeExpression expression)

@Override public void visitCaseStatement(CaseStatement statement)

@Override public void visitCastExpression(CastExpression expression)

@Override public void visitCatchStatement(CatchStatement statement)

@Override public void visitClassExpression(ClassExpression expression)

@Override public void visitClosureExpression(ClosureExpression expression)

@Override public void visitClosureListExpression(ClosureListExpression closureListExpression)

@Override public void visitConstantExpression(ConstantExpression expression)

@Override public void visitConstructorCallExpression(ConstructorCallExpression call)

@Override public void visitContinueStatement(ContinueStatement statement)

@Override public void visitDeclarationExpression(DeclarationExpression expression)

@Override public void visitDoWhileLoop(DoWhileStatement loop)

@Override public void visitEmptyStatement(EmptyStatement statement)

@Override public void visitExpressionStatement(ExpressionStatement statement)

@Override public void visitFieldExpression(FieldExpression expression)

@Override public void visitForLoop(ForStatement forLoop)

@Override public void visitGStringExpression(GStringExpression expression)

@Override public void visitIfElse(IfStatement ifElse)

@Override public void visitLambdaExpression(LambdaExpression expression)

@Override public void visitListExpression(ListExpression expression)

@Override public void visitMapEntryExpression(MapEntryExpression expression)

@Override public void visitMapExpression(MapExpression expression)

@Override public void visitMethodCallExpression(MethodCallExpression call)

@Override public void visitMethodPointerExpression(MethodPointerExpression expression)

@Override public void visitMethodReferenceExpression(MethodReferenceExpression expression)

@Override public void visitNotExpression(NotExpression expression)

@Override public void visitPostfixExpression(PostfixExpression expression)

@Override public void visitPrefixExpression(PrefixExpression expression)

@Override public void visitPropertyExpression(PropertyExpression expression)

@Override public void visitRangeExpression(RangeExpression expression)

@Override public void visitReturnStatement(ReturnStatement statement)

@Override public void visitShortTernaryExpression(ElvisOperatorExpression expression)

@Override public void visitSpreadExpression(SpreadExpression expression)

@Override public void visitSpreadMapExpression(SpreadMapExpression expression)

@Override public void visitStaticMethodCallExpression(StaticMethodCallExpression call)

@Override public void visitSwitch(SwitchStatement statement)

@Override public void visitSynchronizedStatement(SynchronizedStatement statement)

@Override public void visitTernaryExpression(TernaryExpression expression)

@Override public void visitThrowStatement(ThrowStatement statement)

@Override public void visitTryCatchFinally(TryCatchStatement statement)

@Override public void visitTupleExpression(TupleExpression expression)

@Override public void visitUnaryMinusExpression(UnaryMinusExpression expression)

@Override public void visitUnaryPlusExpression(UnaryPlusExpression expression)

@Override public void visitVariableExpression(VariableExpression expression)

@Override public void visitWhileLoop(WhileStatement loop)