org.apache.shiro.spring.web.ShiroFilterFactoryBean.setLoginUrl()方法的使用及代码示例

x33g5p2x  于2022-01-30 转载在 其他  
字(17.9k)|赞(0)|评价(0)|浏览(122)

本文整理了Java中org.apache.shiro.spring.web.ShiroFilterFactoryBean.setLoginUrl()方法的一些代码示例,展示了ShiroFilterFactoryBean.setLoginUrl()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。ShiroFilterFactoryBean.setLoginUrl()方法的具体详情如下:
包路径:org.apache.shiro.spring.web.ShiroFilterFactoryBean
类名称:ShiroFilterFactoryBean
方法名:setLoginUrl

ShiroFilterFactoryBean.setLoginUrl介绍

[英]Sets the application's login URL to be assigned to all acquired Filters that subclass AccessControlFilter. This is a convenience mechanism: for all configured #setFilters, as well for any default ones ( authc, user, etc), this value will be passed on to each Filter via the AccessControlFilter#setLoginUrl(String) method*. This eliminates the need to configure the 'loginUrl' property manually on each filter instance, and instead that can be configured once via this attribute.

If a filter already has already been explicitly configured with a value, it will not receive this value. Individual filter configuration overrides this global convenience property.
[中]将应用程序的登录URL设置为分配给AccessControlFilter子类的所有已获取筛选器。这是一种方便的机制:对于所有配置的#setFilters,以及任何默认的过滤器(authc、user等),该值将通过AccessControlFilter#setLoginUrl(String)方法
传递给每个过滤器。这样就不需要在每个筛选器实例上手动配置“loginUrl”属性,而是可以通过此属性配置一次。
如果过滤器已经明确配置了一个值,它将不会*接收该值。单个筛选器配置将覆盖此全局便利属性。

代码示例

代码示例来源:origin: linlinjava/litemall

@Bean
public ShiroFilterFactoryBean shirFilter(SecurityManager securityManager) {
  ShiroFilterFactoryBean shiroFilterFactoryBean = new ShiroFilterFactoryBean();
  shiroFilterFactoryBean.setSecurityManager(securityManager);
  Map<String, String> filterChainDefinitionMap = new LinkedHashMap<String, String>();
  filterChainDefinitionMap.put("/admin/auth/login", "anon");
  filterChainDefinitionMap.put("/admin/auth/401", "anon");
  filterChainDefinitionMap.put("/admin/auth/index", "anon");
  filterChainDefinitionMap.put("/admin/auth/403", "anon");
  filterChainDefinitionMap.put("/admin/**", "authc");
  shiroFilterFactoryBean.setLoginUrl("/admin/auth/401");
  shiroFilterFactoryBean.setSuccessUrl("/admin/auth/index");
  shiroFilterFactoryBean.setUnauthorizedUrl("/admin/auth/403");
  shiroFilterFactoryBean.setFilterChainDefinitionMap(filterChainDefinitionMap);
  return shiroFilterFactoryBean;
}

代码示例来源:origin: ityouknow/spring-boot-examples

@Bean
public ShiroFilterFactoryBean shirFilter(SecurityManager securityManager) {
  System.out.println("ShiroConfiguration.shirFilter()");
  ShiroFilterFactoryBean shiroFilterFactoryBean = new ShiroFilterFactoryBean();
  shiroFilterFactoryBean.setSecurityManager(securityManager);
  //拦截器.
  Map<String,String> filterChainDefinitionMap = new LinkedHashMap<String,String>();
  // 配置不会被拦截的链接 顺序判断
  filterChainDefinitionMap.put("/static/**", "anon");
  //配置退出 过滤器,其中的具体的退出代码Shiro已经替我们实现了
  filterChainDefinitionMap.put("/logout", "logout");
  //<!-- 过滤链定义,从上向下顺序执行,一般将/**放在最为下边 -->:这是一个坑呢,一不小心代码就不好使了;
  //<!-- authc:所有url都必须认证通过才可以访问; anon:所有url都都可以匿名访问-->
  filterChainDefinitionMap.put("/**", "authc");
  // 如果不设置默认会自动寻找Web工程根目录下的"/login.jsp"页面
  shiroFilterFactoryBean.setLoginUrl("/login");
  // 登录成功后要跳转的链接
  shiroFilterFactoryBean.setSuccessUrl("/index");
  //未授权界面;
  shiroFilterFactoryBean.setUnauthorizedUrl("/403");
  shiroFilterFactoryBean.setFilterChainDefinitionMap(filterChainDefinitionMap);
  return shiroFilterFactoryBean;
}

代码示例来源:origin: stylefeng/Guns

shiroFilter.setLoginUrl("/login");

代码示例来源:origin: apache/shiro

protected ShiroFilterFactoryBean shiroFilterFactoryBean() {
    ShiroFilterFactoryBean filterFactoryBean = new ShiroFilterFactoryBean();

    filterFactoryBean.setLoginUrl(loginUrl);
    filterFactoryBean.setSuccessUrl(successUrl);
    filterFactoryBean.setUnauthorizedUrl(unauthorizedUrl);

    filterFactoryBean.setSecurityManager(securityManager);
    filterFactoryBean.setFilterChainDefinitionMap(shiroFilterChainDefinition.getFilterChainMap());

    return filterFactoryBean;
  }
}

代码示例来源:origin: wuyouzhuguli/FEBS-Shiro

@Bean
public ShiroFilterFactoryBean shiroFilterFactoryBean(SecurityManager securityManager) {
  ShiroFilterFactoryBean shiroFilterFactoryBean = new ShiroFilterFactoryBean();        
  
  Map<String, Filter> filters = shiroFilterFactoryBean.getFilters();//获取filters
  filters.put("user", new CustomUserFilter());
  
  // 设置 securityManager
  shiroFilterFactoryBean.setSecurityManager(securityManager);
  // 登录的 url
  shiroFilterFactoryBean.setLoginUrl(febsProperties.getShiro().getLoginUrl());
  // 登录成功后跳转的 url
  shiroFilterFactoryBean.setSuccessUrl(febsProperties.getShiro().getSuccessUrl());
  // 未授权 url
  shiroFilterFactoryBean.setUnauthorizedUrl(febsProperties.getShiro().getUnauthorizedUrl());
  
  LinkedHashMap<String, String> filterChainDefinitionMap = new LinkedHashMap<>();
  // 设置免认证 url
  String[] anonUrls = StringUtils.splitByWholeSeparatorPreserveAllTokens(febsProperties.getShiro().getAnonUrl(), ",");
  for (String url : anonUrls) {
    filterChainDefinitionMap.put(url, "anon");
  }
  // 配置退出过滤器,其中具体的退出代码 Shiro已经替我们实现了
  filterChainDefinitionMap.put(febsProperties.getShiro().getLogoutUrl(), "logout");
  // 除上以外所有 url都必须认证通过才可以访问,未通过认证自动访问 LoginUrl
  filterChainDefinitionMap.put("/**", "user");
  shiroFilterFactoryBean.setFilterChainDefinitionMap(filterChainDefinitionMap);
  return shiroFilterFactoryBean;
}

代码示例来源:origin: tomoya92/pybbs

@Bean
public ShiroFilterFactoryBean shiroFilter(SecurityManager securityManager) {
 log.info("开始配置shiroFilter...");
 ShiroFilterFactoryBean shiroFilterFactoryBean = new ShiroFilterFactoryBean();
 shiroFilterFactoryBean.setSecurityManager(securityManager);
 //拦截器.
 Map<String,String> map = new HashMap<>();
 // 配置不会被拦截的链接 顺序判断  相关静态资源
 map.put("/static/**", "anon");
 //配置退出 过滤器,其中的具体的退出代码Shiro已经替我们实现了
 map.put("/admin/logout", "logout");
 //<!-- 过滤链定义,从上向下顺序执行,一般将/**放在最为下边 -->:这是一个坑呢,一不小心代码就不好使了;
 //<!-- authc:所有url都必须认证通过才可以访问; anon:所有url都都可以匿名访问-->
 map.put("/admin/**", "authc");
 // 如果不设置默认会自动寻找Web工程根目录下的"/login.jsp"页面
 shiroFilterFactoryBean.setLoginUrl("/adminlogin");
 // 登录成功后要跳转的链接
 shiroFilterFactoryBean.setSuccessUrl("/admin/index");
 //未授权界面;
 shiroFilterFactoryBean.setUnauthorizedUrl("/error");
 shiroFilterFactoryBean.setFilterChainDefinitionMap(map);
 return shiroFilterFactoryBean;
}

代码示例来源:origin: cjbi/wetech-admin

@Bean
public ShiroFilterFactoryBean shiroFilter(SecurityManager securityManager) {
  ShiroFilterFactoryBean shiroFilterFactoryBean = new ShiroFilterFactoryBean();
  shiroFilterFactoryBean.setSecurityManager(securityManager);
  //shiro自定义过滤器
  Map<String, Filter> filters = new LinkedHashMap<>();
  Map<String, String> filterChainDefinitionMap = new LinkedHashMap<>();
  shiroFilterFactoryBean.setFilters(filters);
  //配置记住我或认证通过可以访问的地址
  // 配置不会被拦截的链接 顺序判断
  filterChainDefinitionMap.put("/login","authc");
  //配置退出 过滤器,其中的具体的退出代码Shiro已经替我们实现了
  filterChainDefinitionMap.put("/logout", "logout");
  //未授权界面;
  filterChainDefinitionMap.put("/authenticated", "authc");
  //<!-- 过滤链定义,从上向下顺序执行,一般将/**放在最为下边 -->:这是一个坑呢,一不小心代码就不好使了;
  filterChainDefinitionMap.put("/static/**", "anon");
  //<!-- authc:所有url都必须认证通过才可以访问; anon:所有url都都可以匿名访问-->
  filterChainDefinitionMap.put("/**", "user");
  // 如果不设置默认会自动寻找Web工程根目录下的"/login.jsp"页面
  shiroFilterFactoryBean.setLoginUrl("/login");
  shiroFilterFactoryBean.setFilterChainDefinitionMap(filterChainDefinitionMap);
  return shiroFilterFactoryBean;
}

代码示例来源:origin: stackoverflow.com

@Bean(name = "shiroFilter")
public AbstractShiroFilter shiroFilter() throws Exception {
  ShiroFilterFactoryBean shiroFilter = new ShiroFilterFactoryBean();
  Map<String, String> filterChainDefinitionMapping = new HashMap<>();
  filterChainDefinitionMapping.put("/api/health", "authc,roles[guest],ssl[8443]");
  filterChainDefinitionMapping.put("/login", "authc");
  filterChainDefinitionMapping.put("/logout", "logout");
  shiroFilter.setFilterChainDefinitionMap(filterChainDefinitionMapping);
  shiroFilter.setSecurityManager(securityManager());
  shiroFilter.setLoginUrl("/login");
  Map<String, Filter> filters = new HashMap<>();
  filters.put("anon", new AnonymousFilter());
  filters.put("authc", new FormAuthenticationFilter());
  LogoutFilter logoutFilter = new LogoutFilter();
  logoutFilter.setRedirectUrl("/login?logout");
  filters.put("logout", logoutFilter);
  filters.put("roles", new RolesAuthorizationFilter());
  filters.put("user", new UserFilter());
  shiroFilter.setFilters(filters);
  return (AbstractShiroFilter) shiroFilter.getObject();
}

代码示例来源:origin: chenjunwen/SpringBootFrame

/**
 * 配置shiro的过滤器工厂类
 * @param manager
 * @return
 */
@Bean(name="shiroFilter")
public ShiroFilterFactoryBean shiroFilter(@Qualifier("securityManager") SecurityManager manager) {
  ShiroFilterFactoryBean bean=new ShiroFilterFactoryBean();
  bean.setSecurityManager(manager);
  //配置登录的url和登录成功的url和无权限
  bean.setLoginUrl("api/user/login");
  bean.setSuccessUrl("/index");
  bean.setUnauthorizedUrl("/403");
  System.out.println("shiro:过滤");
  //配置访问权限
  LinkedHashMap<String, String> filterChainDefinitionMap=new LinkedHashMap<>();
  filterChainDefinitionMap.put("/api/user/logout", "anon"); //表示可以匿名访问
  filterChainDefinitionMap.put("/druid*//*","anon");
  filterChainDefinitionMap.put("/fs*//*","anon");
  filterChainDefinitionMap.put("/*", "authc");//表示需要认证才可以访问
  bean.setFilterChainDefinitionMap(filterChainDefinitionMap);
  return bean;
}

代码示例来源:origin: lcw2004/one

@Bean(name = "shiroFilter")
public ShiroFilterFactoryBean shiroFilterFactoryBean() {
  ShiroFilterFactoryBean shiroFilterFactoryBean = new ShiroFilterFactoryBean();
  shiroFilterFactoryBean.setSecurityManager(securityManager());
  shiroFilterFactoryBean.setLoginUrl("/login.html");
  shiroFilterFactoryBean.setSuccessUrl("/index.html");
  shiroFilterFactoryBean.setUnauthorizedUrl("/login.html");
  Map<String, Filter> filterMap = new LinkedHashMap<>();
  filterMap.put("authc", new OneFormAuthenticationFilter());
  shiroFilterFactoryBean.setFilters(filterMap);
  return shiroFilterFactoryBean;
}

代码示例来源:origin: wangxinforme/sc

/**
 * ShiroFilter<br/>
 * 注意这里参数中的 StudentService 和 IScoreDao 只是一个例子,因为我们在这里可以用这样的方式获取到相关访问数据库的对象,
 * 然后读取数据库相关配置,配置到 shiroFilterFactoryBean 的访问规则中。实际项目中,请使用自己的Service来处理业务逻辑。
 */
@Bean(name = "shiroFilter")
public ShiroFilterFactoryBean getShiroFilterFactoryBean(DefaultWebSecurityManager securityManager) {
  ShiroFilterFactoryBean shiroFilterFactoryBean = new MShiroFilterFactoryBean();
  // 必须设置 SecurityManager
  shiroFilterFactoryBean.setSecurityManager(securityManager);
  // 如果不设置默认会自动寻找Web工程根目录下的"/login.jsp"页面
  shiroFilterFactoryBean.setLoginUrl("/login");
  // 登录成功后要跳转的连接
  // shiroFilterFactoryBean.setSuccessUrl("/user");
  shiroFilterFactoryBean.setUnauthorizedUrl("/403");
  loadShiroFilterChain(shiroFilterFactoryBean);
  return shiroFilterFactoryBean;
}

代码示例来源:origin: wangxinforme/sc

/**
 * ShiroFilter<br/>
 * 注意这里参数中的 StudentService 和 IScoreDao 只是一个例子,因为我们在这里可以用这样的方式获取到相关访问数据库的对象,
 * 然后读取数据库相关配置,配置到 shiroFilterFactoryBean 的访问规则中。实际项目中,请使用自己的Service来处理业务逻辑。
 */
@Bean(name = "shiroFilter")
public ShiroFilterFactoryBean getShiroFilterFactoryBean(DefaultWebSecurityManager securityManager) {
  ShiroFilterFactoryBean shiroFilterFactoryBean = new MShiroFilterFactoryBean();
  // 必须设置 SecurityManager
  shiroFilterFactoryBean.setSecurityManager(securityManager);
  // 如果不设置默认会自动寻找Web工程根目录下的"/login.jsp"页面
  shiroFilterFactoryBean.setLoginUrl("/login");
  // 登录成功后要跳转的连接
  // shiroFilterFactoryBean.setSuccessUrl("/user");
  shiroFilterFactoryBean.setUnauthorizedUrl("/error");
  loadShiroFilterChain(shiroFilterFactoryBean);
  return shiroFilterFactoryBean;
}

代码示例来源:origin: wangxinforme/springboot-freemarker

/**
 * ShiroFilter<br/>
 * 注意这里参数中的 StudentService 和 IScoreDao 只是一个例子,因为我们在这里可以用这样的方式获取到相关访问数据库的对象,
 * 然后读取数据库相关配置,配置到 shiroFilterFactoryBean 的访问规则中。实际项目中,请使用自己的Service来处理业务逻辑。
 */
@Bean(name = "shiroFilter")
public ShiroFilterFactoryBean getShiroFilterFactoryBean(DefaultWebSecurityManager securityManager) {
  ShiroFilterFactoryBean shiroFilterFactoryBean = new MShiroFilterFactoryBean();
  // 必须设置 SecurityManager
  shiroFilterFactoryBean.setSecurityManager(securityManager);
  // 如果不设置默认会自动寻找Web工程根目录下的"/login.jsp"页面
  shiroFilterFactoryBean.setLoginUrl("/login");
  // 登录成功后要跳转的连接
  //shiroFilterFactoryBean.setSuccessUrl("/user");
  shiroFilterFactoryBean.setUnauthorizedUrl("/403");
  loadShiroFilterChain(shiroFilterFactoryBean);
  return shiroFilterFactoryBean;
}

代码示例来源:origin: battcn/spring-boot2-learning

/**
 * ShiroFilter<br/>
 * 注意这里参数中的 StudentService 和 IScoreDao 只是一个例子,因为我们在这里可以用这样的方式获取到相关访问数据库的对象,
 * 然后读取数据库相关配置,配置到 shiroFilterFactoryBean 的访问规则中。实际项目中,请使用自己的Service来处理业务逻辑。
 *
 * @param securityManager 安全管理器
 * @return ShiroFilterFactoryBean
 */
@Bean(name = "shiroFilter")
public ShiroFilterFactoryBean getShiroFilterFactoryBean(DefaultWebSecurityManager securityManager) {
  ShiroFilterFactoryBean shiroFilterFactoryBean = new ShiroFilterFactoryBean();
  // 必须设置 SecurityManager
  shiroFilterFactoryBean.setSecurityManager(securityManager);
  // 如果不设置默认会自动寻找Web工程根目录下的"/login"页面
  shiroFilterFactoryBean.setLoginUrl("/login");
  // 登录成功后要跳转的连接
  shiroFilterFactoryBean.setSuccessUrl("/index");
  shiroFilterFactoryBean.setUnauthorizedUrl("/denied");
  loadShiroFilterChain(shiroFilterFactoryBean);
  return shiroFilterFactoryBean;
}

代码示例来源:origin: org.apache.shiro/shiro-spring

protected ShiroFilterFactoryBean shiroFilterFactoryBean() {
    ShiroFilterFactoryBean filterFactoryBean = new ShiroFilterFactoryBean();

    filterFactoryBean.setLoginUrl(loginUrl);
    filterFactoryBean.setSuccessUrl(successUrl);
    filterFactoryBean.setUnauthorizedUrl(unauthorizedUrl);

    filterFactoryBean.setSecurityManager(securityManager);
    filterFactoryBean.setFilterChainDefinitionMap(shiroFilterChainDefinition.getFilterChainMap());

    return filterFactoryBean;
  }
}

代码示例来源:origin: com.stormpath.shiro/shiro-spring-config-web

protected ShiroFilterFactoryBean shiroFilterFactoryBean(SecurityManager securityManager, ShiroFilterChainDefinition shiroFilterChainDefinition) {

    ShiroFilterFactoryBean filterFactoryBean = new ShiroFilterFactoryBean();

    filterFactoryBean.setLoginUrl(loginUrl);
    filterFactoryBean.setSuccessUrl(successUrl);
    filterFactoryBean.setUnauthorizedUrl(unauthorizedUrl);

    filterFactoryBean.setSecurityManager(securityManager);
    filterFactoryBean.setFilterChainDefinitionMap(shiroFilterChainDefinition.getFilterChainMap());

    return filterFactoryBean;
  }
}

代码示例来源:origin: com.soento/soento-cms

@Bean("shiroFilter")
public ShiroFilterFactoryBean shiroFilter() {
  ShiroFilterFactoryBean factory = new ShiroFilterFactoryBean();
  factory.setSecurityManager(securityManager());
  factory.setLoginUrl(systemConfig.getDomain() + "login");
  factory.setSuccessUrl(systemConfig.getDomain() + "index");
  factory.setUnauthorizedUrl(systemConfig.getDomain() + "unauthorized");
  Map<String, Filter> filters = new LinkedHashMap<>();
  filters.put("kickout", kickoutSessionControlFilter());
  factory.setFilters(filters);
  Map<String, String> chain = new LinkedHashMap<>();
  chain.put("/assets/**", "anon");
  authComponent.load();
  for (String path : authConfig.getWhitelist()) {
    chain.put(path, "anon");
  }
  cmsService.initFuns(authConfig.getAuthList());
  List<FuncData> funs = cmsService.getAllFuns();
  for (FuncData fun : funs) {
    chain.put(fun.getUri(), "authc,perms[" + fun.getFuncName() + "]");
  }
  chain.put("/**", "authc,kickout");
  factory.setFilterChainDefinitionMap(chain);
  return factory;
}

代码示例来源:origin: boyazuo/shiro-spring-boot

@Bean(name = "shiroFilter")
  @DependsOn("securityManager")
  @ConditionalOnMissingBean
  public ShiroFilterFactoryBean getShiroFilterFactoryBean(DefaultSecurityManager securityManager, Realm realm) {
    securityManager.setRealm(realm);

    ShiroFilterFactoryBean shiroFilter = new ShiroFilterFactoryBean();
    shiroFilter.setSecurityManager(securityManager);
    shiroFilter.setLoginUrl(properties.getLoginUrl());
    shiroFilter.setSuccessUrl(properties.getSuccessUrl());
    shiroFilter.setUnauthorizedUrl(properties.getUnauthorizedUrl());
    shiroFilter.setFilterChainDefinitionMap(properties.getFilterChainDefinitionMap());
    return shiroFilter;
  }
}

代码示例来源:origin: wzypandaking/rbac-shiro

/**
 *
 * <filter>
 *      <filter-name>ShiroFilter</filter-name>
 *      <filter-class>org.apache.shiro.web.servlet.ShiroFilter</filter-class>
 * </filter>
 * @return
 */
@Bean("shiroFilter")
public ShiroFilterFactoryBean shiroFilterFactoryBean(SecurityManager manager) {
  ShiroFilterFactoryBean factory = new ShiroFilterFactoryBean();
  factory.setSecurityManager(manager);
  factory.setLoginUrl(getLoginUrl());
  factory.setSuccessUrl(getSuccessUrl());
  factory.setFilterChainDefinitionMap(filterChainDefinitionMap());
  Map<String, Filter> filterMap = filterMap();
  if (!CollectionUtils.isEmpty(filterMap)) {
    factory.setFilters(filterMap());
  }
  return factory;
}

代码示例来源:origin: zhangyd-c/OneBlog

/**
 * ShiroFilterFactoryBean 处理拦截资源文件问题。
 * 注意:单独一个ShiroFilterFactoryBean配置是或报错的,因为在
 * 初始化ShiroFilterFactoryBean的时候需要注入:SecurityManager
 * Filter Chain定义说明
 * 1、一个URL可以配置多个Filter,使用逗号分隔
 * 2、当设置多个过滤器时,全部验证通过,才视为通过
 * 3、部分过滤器可指定参数,如perms,roles
 */
@Bean(name = "shiroFilter")
public ShiroFilterFactoryBean shirFilter(SecurityManager securityManager) {
  ShiroFilterFactoryBean shiroFilterFactoryBean = new ShiroFilterFactoryBean();
  // 必须设置 SecurityManager
  shiroFilterFactoryBean.setSecurityManager(securityManager);
  // 如果不设置默认会自动寻找Web工程根目录下的"/login.jsp"页面
  shiroFilterFactoryBean.setLoginUrl(shiroProperties.getLoginUrl());
  // 登录成功后要跳转的链接
  shiroFilterFactoryBean.setSuccessUrl(shiroProperties.getSuccessUrl());
  // 未授权界面;
  shiroFilterFactoryBean.setUnauthorizedUrl(shiroProperties.getUnauthorizedUrl());
  // 配置数据库中的resource
  Map<String, String> filterChainDefinitionMap = shiroService.loadFilterChainDefinitions();
  shiroFilterFactoryBean.setFilterChainDefinitionMap(filterChainDefinitionMap);
  return shiroFilterFactoryBean;
}

相关文章