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
      extends Object
      implements GroovyCodeVisitor

  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` | `equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

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