-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/37209/
-----------------------------------------------------------

(Updated Aug. 14, 2015, 11:01 a.m.)


Review request for geode, Amogh Shetkar, Jens Deppe, and Nilkanth Patel.


Repository: geode


Description (updated)
-------

GEODE-77 : Integrated Security Code Merge

This is manual merge of code from int_security branch.

Testing done : JMX RMI-connector testing done from JConsole, Gfsh interactive 
testing with different roles. DUnits are not yet integrated into open.


Adding description about changes done

JMX - Key Changes

        ManagementAgent.java 
                Hooks managementInterceptor when security plugins are configured
                
        ManagementInterceptor.java 
                Central interceptor for JMX RMI connector.
                Each JMX call go through interceptor via MBeanServerWrapper in 
following fashion

                jmx(mxbean.op()) -> mbeanServerWrapper -> interceptor -> 
security plugin -> back to wrapper -> mxbean.op()

        ResourceOperationContext 
                OperationContext for all m&m resource operations.
                This returns operation code as RESOURCE (except for data 
commands) and has additional code called resourceOperationCode which return 
exact operation requested
                
        ResourceOperation
                This annotation is used to mark mxbean interfaces and commands 
to corresponding m&m action

        JMXOperationContext 
                describes mbean operation(getAttr,SetAttr,Op) in terms of 
ResourceOperationContext.
                Parses all MXBean annotation and build map used for mapping jmx 
calls to resource codes 
        CLIOperationContext 
                describes gfsh command(name, params) in terms of 
ResourceOperationContext
                Parses all Command annotation and build map used for mapping 
gfsh command calls to resource codes

        *MXBean and *Commands Changes 
                Added ResourceOperation annotation              

REST ADMIN - Key Changes

        AuthManager
                gateway to authorize and authenticate REST ADMIN        
                
        internal/web/controllers/AbstractCommandsController.java
                Changes for ADMIN REST to add authentication and authorization 
callbacks

Pulse - Key Changes from gemfire side

        AccessControlMXBean/AccessControlContext
                This is hidden mbean which opens up authorization end-point for 
Pulse
                Pulse will access this mbean to know its authorization levels 
after connecting with given credentials
                Any JMX Client can use this mbean to know its (currrent jmx 
connection) authorization levels
                
REST - Key changes
        
        gemfire-web-api - AbstractBaseController.java and other controller 
classes
                REST API changes for At & Az
                
        DistributionConfig (its impl)
                New system properties token-service for REST

        TokenService
                New interface for REST endpoint which is supposed to give 
secured token when given Princial
                
        RestAPIsOperationContext
                OperationContext for REST API


Diffs
-----

  
gemfire-core/src/main/java/com/gemstone/gemfire/cache/operations/OperationContext.java
 d25063c 
  
gemfire-core/src/main/java/com/gemstone/gemfire/distributed/DistributedSystem.java
 b7b2cd8 
  
gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/AbstractDistributionConfig.java
 472959d 
  
gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/DistributionConfig.java
 10094a9 
  
gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/DistributionConfigImpl.java
 b8dfeb3 
  
gemfire-core/src/main/java/com/gemstone/gemfire/internal/i18n/LocalizedStrings.java
 f5ae3e5 
  
gemfire-core/src/main/java/com/gemstone/gemfire/internal/security/AuthorizeRequest.java
 8ba07a2 
  
gemfire-core/src/main/java/com/gemstone/gemfire/management/CacheServerMXBean.java
 59f6537 
  
gemfire-core/src/main/java/com/gemstone/gemfire/management/DiskStoreMXBean.java 
f14d16c 
  
gemfire-core/src/main/java/com/gemstone/gemfire/management/DistributedSystemMXBean.java
 f0a0a79 
  
gemfire-core/src/main/java/com/gemstone/gemfire/management/GatewayReceiverMXBean.java
 3e5ba1a 
  
gemfire-core/src/main/java/com/gemstone/gemfire/management/GatewaySenderMXBean.java
 b6c5219 
  
gemfire-core/src/main/java/com/gemstone/gemfire/management/LockServiceMXBean.java
 e53d50a 
  gemfire-core/src/main/java/com/gemstone/gemfire/management/ManagerMXBean.java 
04fda7e 
  gemfire-core/src/main/java/com/gemstone/gemfire/management/MemberMXBean.java 
e935fcd 
  
gemfire-core/src/main/java/com/gemstone/gemfire/management/internal/ManagementAgent.java
 43bfe73 
  
gemfire-core/src/main/java/com/gemstone/gemfire/management/internal/RestAgent.java
 74695ee 
  
gemfire-core/src/main/java/com/gemstone/gemfire/management/internal/SystemManagementService.java
 d8f6983 
  
gemfire-core/src/main/java/com/gemstone/gemfire/management/internal/cli/commands/ClientCommands.java
 2eb1318 
  
gemfire-core/src/main/java/com/gemstone/gemfire/management/internal/cli/commands/ConfigCommands.java
 279fb45 
  
gemfire-core/src/main/java/com/gemstone/gemfire/management/internal/cli/commands/CreateAlterDestroyRegionCommands.java
 919d6fe 
  
gemfire-core/src/main/java/com/gemstone/gemfire/management/internal/cli/commands/DataCommands.java
 9e60839 
  
gemfire-core/src/main/java/com/gemstone/gemfire/management/internal/cli/commands/DeployCommands.java
 4591b53 
  
gemfire-core/src/main/java/com/gemstone/gemfire/management/internal/cli/commands/DiskStoreCommands.java
 4614ce7 
  
gemfire-core/src/main/java/com/gemstone/gemfire/management/internal/cli/commands/DurableClientCommands.java
 01910d6 
  
gemfire-core/src/main/java/com/gemstone/gemfire/management/internal/cli/commands/ExportImportSharedConfigurationCommands.java
 d4134ad 
  
gemfire-core/src/main/java/com/gemstone/gemfire/management/internal/cli/commands/FunctionCommands.java
 0d8c54a 
  
gemfire-core/src/main/java/com/gemstone/gemfire/management/internal/cli/commands/GfshHelpCommands.java
 d9d4bea 
  
gemfire-core/src/main/java/com/gemstone/gemfire/management/internal/cli/commands/IndexCommands.java
 c978381 
  
gemfire-core/src/main/java/com/gemstone/gemfire/management/internal/cli/commands/LauncherLifecycleCommands.java
 302d7bb 
  
gemfire-core/src/main/java/com/gemstone/gemfire/management/internal/cli/commands/MemberCommands.java
 797f654 
  
gemfire-core/src/main/java/com/gemstone/gemfire/management/internal/cli/commands/MiscellaneousCommands.java
 da8f11d 
  
gemfire-core/src/main/java/com/gemstone/gemfire/management/internal/cli/commands/PDXCommands.java
 d236d81 
  
gemfire-core/src/main/java/com/gemstone/gemfire/management/internal/cli/commands/QueueCommands.java
 7b298d6 
  
gemfire-core/src/main/java/com/gemstone/gemfire/management/internal/cli/commands/RegionCommands.java
 80ba89e 
  
gemfire-core/src/main/java/com/gemstone/gemfire/management/internal/cli/commands/ShellCommands.java
 4bdab90 
  
gemfire-core/src/main/java/com/gemstone/gemfire/management/internal/cli/commands/StatusCommands.java
 5abd08a 
  
gemfire-core/src/main/java/com/gemstone/gemfire/management/internal/cli/commands/WanCommands.java
 a6d9abf 
  
gemfire-core/src/main/java/com/gemstone/gemfire/management/internal/cli/shell/JmxOperationInvoker.java
 864907b 
  
gemfire-core/src/main/java/com/gemstone/gemfire/management/internal/security/AccessControl.java
 58040cd 
  
gemfire-core/src/main/java/com/gemstone/gemfire/management/internal/security/AccessControlContext.java
 1926db5 
  
gemfire-core/src/main/java/com/gemstone/gemfire/management/internal/security/AccessControlMXBean.java
 e217045 
  
gemfire-core/src/main/java/com/gemstone/gemfire/management/internal/security/CLIOperationContext.java
 b0198e4 
  
gemfire-core/src/main/java/com/gemstone/gemfire/management/internal/security/JMXOperationContext.java
 375cc27 
  
gemfire-core/src/main/java/com/gemstone/gemfire/management/internal/security/JSONAuthorization.java
 d85ce65 
  
gemfire-core/src/main/java/com/gemstone/gemfire/management/internal/security/MBeanServerWrapper.java
 50942c1 
  
gemfire-core/src/main/java/com/gemstone/gemfire/management/internal/security/ManagementInterceptor.java
 1851977 
  
gemfire-core/src/main/java/com/gemstone/gemfire/management/internal/security/Resource.java
 4dc27e1 
  
gemfire-core/src/main/java/com/gemstone/gemfire/management/internal/security/ResourceConstants.java
 3f4d7cb 
  
gemfire-core/src/main/java/com/gemstone/gemfire/management/internal/security/ResourceOperation.java
 f149479 
  
gemfire-core/src/main/java/com/gemstone/gemfire/management/internal/security/ResourceOperationContext.java
 aa1c38c 
  
gemfire-core/src/main/java/com/gemstone/gemfire/management/internal/web/controllers/AbstractCommandsController.java
 73ce926 
  
gemfire-core/src/main/java/com/gemstone/gemfire/management/internal/web/controllers/ConfigCommandsController.java
 517d942 
  
gemfire-core/src/main/java/com/gemstone/gemfire/management/internal/web/controllers/DataCommandsController.java
 6767ec1 
  
gemfire-core/src/main/java/com/gemstone/gemfire/management/internal/web/controllers/DiskStoreCommandsController.java
 2df3432 
  
gemfire-core/src/main/java/com/gemstone/gemfire/management/internal/web/controllers/FunctionCommandsController.java
 de81543 
  
gemfire-core/src/main/java/com/gemstone/gemfire/management/internal/web/controllers/MiscellaneousCommandsController.java
 66d344f 
  
gemfire-core/src/main/java/com/gemstone/gemfire/management/internal/web/controllers/WanCommandsController.java
 1e22bd9 
  
gemfire-core/src/main/java/com/gemstone/gemfire/management/internal/web/controllers/support/EnvironmentVariablesHandlerInterceptor.java
 8ebed02 
  
gemfire-core/src/main/java/com/gemstone/gemfire/management/internal/web/http/support/SimpleHttpRequester.java
 8bd9d37 
  
gemfire-core/src/main/java/com/gemstone/gemfire/management/internal/web/shell/AbstractHttpOperationInvoker.java
 dac1271 
  
gemfire-core/src/main/java/com/gemstone/gemfire/management/internal/web/shell/RestHttpOperationInvoker.java
 0dfbdbd 
  
gemfire-core/src/main/java/com/gemstone/gemfire/management/internal/web/shell/SimpleHttpOperationInvoker.java
 a122339 
  
gemfire-core/src/test/java/com/gemstone/gemfire/internal/cache/extension/mock/MockExtensionCommands.java
 89644f0 
  
gemfire-core/src/test/java/com/gemstone/gemfire/management/internal/cli/CommandManagerJUnitTest.java
 ab9333d 
  
gemfire-core/src/test/java/com/gemstone/gemfire/management/internal/cli/shell/GfshExecutionStrategyJUnitTest.java
 44aef44 
  
gemfire-core/src/test/java/com/gemstone/gemfire/management/internal/security/JSONAuthCodeTest.java
 384493b 
  
gemfire-core/src/test/java/com/gemstone/gemfire/management/internal/security/ResourceOperationJUnit.java
 f061240 
  
gemfire-web-api/src/main/java/com/gemstone/gemfire/rest/internal/web/controllers/AbstractBaseController.java
 feed8c7 
  
gemfire-web-api/src/main/java/com/gemstone/gemfire/rest/internal/web/controllers/BaseControllerAdvice.java
 5ae88bc 
  
gemfire-web-api/src/main/java/com/gemstone/gemfire/rest/internal/web/controllers/CommonCrudController.java
 ef52347 
  
gemfire-web-api/src/main/java/com/gemstone/gemfire/rest/internal/web/controllers/FunctionAccessController.java
 45d6f66 
  
gemfire-web-api/src/main/java/com/gemstone/gemfire/rest/internal/web/controllers/PdxBasedCrudController.java
 96551c6 
  
gemfire-web-api/src/main/java/com/gemstone/gemfire/rest/internal/web/controllers/QueryAccessController.java
 b20c849 
  gemfire-web-api/src/main/webapp/WEB-INF/web.xml 554ef4b 

Diff: https://reviews.apache.org/r/37209/diff/


Testing
-------


Thanks,

Tushar Khairnar

Reply via email to