activiti-rest的权限控制

1.观察activiti-rest的目录结构,可以知道该war包为Webapp,按照教程二创建工程目录,并根据activiti-rest的目录导入资源和java类

classes中class文件和java类的对应关系,classes目录<---->src目录,src目录新建package,并与classes的目录结构一一对应

其他资源文件的的对应结构,classes<---->webapp中class目录下

2.将源web.xml中的内容复制到工程项目

3.使用Maven解决相关依赖

4.部署到Tomcat上,查看是否与原来的war包实现同一个功能

5.观察源码,通过跟踪,可以知道管理登录及认证的在类SecurityConfiguration.java中

package org.activiti.rest.conf;
import org.activiti.rest.security.BasicAuthenticationProvider;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.authentication.AuthenticationProvider;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.security.config.annotation.web.configurers.CsrfConfigurer;
import org.springframework.security.config.annotation.web.configurers.ExpressionUrlAuthorizationConfigurer.AuthorizedUrl;
import org.springframework.security.config.annotation.web.configurers.ExpressionUrlAuthorizationConfigurer.ExpressionInterceptUrlRegistry;
import org.springframework.security.config.annotation.web.configurers.SessionManagementConfigurer;
import org.springframework.security.config.annotation.web.servlet.configuration.EnableWebMvcSecurity;
import org.springframework.security.config.http.SessionCreationPolicy;
@Configuration
@EnableWebSecurity
@EnableWebMvcSecurity
public class SecurityConfiguration
  extends WebSecurityConfigurerAdapter
{
  @Bean
  public AuthenticationProvider authenticationProvider()
  {
    return new BasicAuthenticationProvider();
  }
   
  protected void configure(HttpSecurity http)
    throws Exception
  {
    ((HttpSecurity)((ExpressionUrlAuthorizationConfigurer.AuthorizedUrl)((HttpSecurity)((HttpSecurity)http.authenticationProvider(authenticationProvider()).sessionManagement()
    .sessionCreationPolicy(SessionCreationPolicy.STATELESS).and())
    .csrf().disable())
    .authorizeRequests().anyRequest())
    .authenticated().and())
    .httpBasic();
  }
}

这里是使用Spring Security进行验证,那么更改为

package org.activiti.rest.conf;
 
import com.kf580.Kf580BasicAuthenticationProvider;
import org.activiti.engine.IdentityService;
import org.activiti.engine.identity.Group;
import org.activiti.rest.security.BasicAuthenticationProvider;
import org.activiti.rest.service.api.identity.GroupResource;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.HttpMethod;
import org.springframework.security.authentication.AuthenticationProvider;
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.security.config.annotation.web.configurers.ExpressionUrlAuthorizationConfigurer;
import org.springframework.security.config.annotation.web.configurers.SessionManagementConfigurer;
import org.springframework.security.config.annotation.web.servlet.configuration.EnableWebMvcSecurity;
import org.springframework.security.config.http.SessionCreationPolicy;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.userdetails.UserDetails;
 
//antMatchers(HttpMethod.PUT,"/**/identity/users/{userId}").hasAuthority("admin")
//rest提交方式为PUT,地址为/**/identity/users/{userId},注意/**/表示在前面匹配任何字符,hasAuthority表示对什么身份开放,{userId}会自动替换
 
@Configuration
@EnableWebSecurity
@EnableWebMvcSecurity
public class SecurityConfiguration
  extends WebSecurityConfigurerAdapter//Spring 安全性管理security
{
  protected static final Logger LOGGER = LoggerFactory.getLogger(SecurityConfiguration.class);
  @Bean
  public AuthenticationProvider authenticationProvider(){
    return new BasicAuthenticationProvider();
  }
   
  protected void configure(HttpSecurity http)
    throws Exception
  {
/*       ((HttpSecurity)((ExpressionUrlAuthorizationConfigurer.AuthorizedUrl)
                ((HttpSecurity)((HttpSecurity)http.authenticationProvider(authenticationProvider())
                        .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS).and())
                        .csrf().disable())
                        .authorizeRequests()
                        .anyRequest())
                .authenticated().and()).httpBasic();*/
/*更改为*/
          ((HttpSecurity)((ExpressionUrlAuthorizationConfigurer.AuthorizedUrl)
                  ((HttpSecurity)((HttpSecurity)http.authenticationProvider(authenticationProvider())
                      .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS).and())
                      .csrf().disable())
                      .authorizeRequests()
                      .antMatchers(HttpMethod.PUT,"/**/identity/users/{userId}").hasAuthority("admin")//更新用户
                      .antMatchers(HttpMethod.POST,"/**/identity/users").hasAuthority("admin")//创建用户
                      .antMatchers(HttpMethod.DELETE,"/**/identity/users/{userId}").hasAuthority("admin")//删除用户
                      .antMatchers(HttpMethod.PUT,"/**/identity/users/{userId}/info/{key}").hasAuthority("admin")//更新用户的信息
                      .antMatchers(HttpMethod.POST,"/**/identity/users/{userId}/info").hasAuthority("admin")//创建用户信息条目
                      .antMatchers(HttpMethod.DELETE,"/**/identity/users/{userId}/info/{key}").hasAuthority("admin")//删除用户的信息
                      .antMatchers(HttpMethod.PUT,"/**/identity/groups/{groupId}").hasAuthority("admin")//更新群组
                      .antMatchers(HttpMethod.POST,"/**/identity/groups").hasAuthority("admin")//创建群组
                      .antMatchers(HttpMethod.DELETE,"/**/identity/groups/{groupId}").hasAuthority("admin")//删除群组
                      .antMatchers(HttpMethod.POST,"/**/identity/groups/{groupId}/members").hasAuthority("admin")//为群组添加一个成员
                      .antMatchers(HttpMethod.DELETE,"/**/identity/groups/{groupId}/members/{userId}").hasAuthority("admin")//删除群组的成员
                      .anyRequest())
                      .authenticated().and()).httpBasic();
  }
}

6.然后安装教activiti-explorer乱码问题的解决,导出class文件进行对源文件的替换即可


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
activiti-explorer是一个基于Activiti工作流引擎的Web应用程序,用于管理和监控工作流流程。它提供了一个直观的用户界面,允许用户查看和操作工作流程的各个方面。 activiti-explorer具有以下几个主要功能和特点: 1. 流程管理:activiti-explorer允许用户部署、启动、停止和删除工作流程。用户可以通过界面创建和编辑工作流程定义,并将其部署到Activiti引擎中。用户还可以查看流程实例和任务列表,以便监控工作流程的执行状态。 2. 任务管理:activiti-explorer使用户能够处理任务。用户可以接受、拒绝、转接和完成任务,还可以添加和查看任务的备注和附件。任务的执行状态和历史记录也可以通过界面进行查询和跟踪。 3. 用户管理:activiti-explorer允许管理员管理用户和组织角色。管理员可以创建、编辑和删除用户,分配和撤销用户的角色。这样可以确保只有授权的用户能够访问和操作特定的工作流程。 4. 报表和统计:activiti-explorer提供了一些报表和统计功能,用于分析和评估工作流程的性能和效率。用户可以查看工作流程的完成情况、平均处理时间和执行过程中的问题等指标。 总之,activiti-explorer是一个功能强大的工作流管理工具,可以帮助用户有效地管理和监控工作流程。它提供了直观的界面和丰富的功能,使用户能够轻松地创建、部署和处理工作流程,提高工作效率和质量。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值