Package: org.codehaus.groovy.control.customizers

## [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)