我正在使用importPoliciesFromFile API调用不断地将更改从一个Ranger示例复制到另一个示例。我看到importPoliciesFromFile将删除并使用新的策略ID重新创建策略。这会对授权或Ranger的工作方式造成任何影响吗?我在脑海中想象,由于删除策略,在一瞬间不会有策略,然后客户端将无法获得授权或拒绝访问。或者它是同步的意思,它是否停止所有其他代码执行和用户交互,直到调用返回?
63lcw9qa1#
您提到的importPoliciesFromFile方法在一个带有Spring的@Transactional注解的类中;
importPoliciesFromFile
@Transactional
package org.apache.ranger.rest; @Path("plugins") @Component @Scope("request") @Transactional(propagation = Propagation.REQUIRES_NEW) public class ServiceREST { ... @POST @Path("/policies/importPoliciesFromFile") @Consumes({MediaType.MULTIPART_FORM_DATA, MediaType.APPLICATION_JSON}) @Produces({ "application/json", "application/xml" }) @PreAuthorize("@rangerPreAuthSecurityHandler.isAdminOrKeyAdminRole()") public void importPoliciesFromFile(...) { } }
请参见这里的评论和答案Is spring @transactional thread safe?。看起来Spring在“线程安全”和“脏读”方面依赖于它的底层数据库。
1条答案
按热度按时间63lcw9qa1#
您提到的
importPoliciesFromFile
方法在一个带有Spring的@Transactional
注解的类中;请参见这里的评论和答案Is spring @transactional thread safe?。看起来Spring在“线程安全”和“脏读”方面依赖于它的底层数据库。