首页 文章 精选 留言 我的

精选列表

搜索[配置],共10000篇文章
优秀的个人博客,低调大师

[Python][数据分析环境配置]

pyenv for py3 虚拟环境设置install pip3 apt install python3-pip virtual env for py3: mkdir -p ~/pyenv cd ~/pyenv virtualenv -p /usr/bin/python3 py3 source ~/pyenv/py3/bin/activate pip install --upgrade pip echo "source ~/pyenv/py3/bin/activate" >> ~/.bashrc py3 config: pip install jupyter numpy pandas cv2 pillow re tqdm jupyter remote ref remote do: jupyter notebook --ip 127.0.0.1 --no-browser --port=8889 local do: ssh -N -L localhost:8888:localhost:8889 root@101.132.158.110 workspace windows cygwin firefox, chrome leanote linux aliyun server python R 远程服务器无法通过cygwin 可视化,很不方便 对于R 可视化分析尤其不方便。 jupyter 可以分析R!

优秀的个人博客,低调大师

Sping boot的Shiro的配置

Config import org.apache.shiro.cache.ehcache.EhCacheManager; import org.apache.shiro.mgt.SecurityManager; import org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor; import org.apache.shiro.spring.web.ShiroFilterFactoryBean; import org.apache.shiro.web.mgt.DefaultWebSecurityManager; import org.springframework.boot.web.servlet.FilterRegistrationBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.filter.DelegatingFilterProxy; import javax.annotation.Resource; import javax.servlet.Filter; import java.util.HashMap; import java.util.Map; @Slf4j @Configuration public class ShiroConfig { /*** * 具体的验证规则实现类 */ @Resource ShiroRealm shiroRealm; @Bean public EhCacheManager ehCacheManager() { return null; } @Bean public LoginFilterShiro loginFilterShiro() { return new LoginFilterShiro(); } @Bean public FilterRegistrationBean delegatingFilterProxy() { FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(); DelegatingFilterProxy proxy = new DelegatingFilterProxy(); proxy.setTargetFilterLifecycle(true); proxy.setTargetBeanName("shiroFilter"); filterRegistrationBean.setFilter(proxy); return filterRegistrationBean; } /*** * 权限管理 * @return */ @Bean public SecurityManager securityManager() { log.info("----------------加载shiro权限管理器---------------"); DefaultWebSecurityManager defaultWebSecurityManager = new DefaultWebSecurityManager(); defaultWebSecurityManager.setRealm(shiroRealm); return defaultWebSecurityManager; } /*** * Shiro过滤器,用于过滤相关请求 * @param securityManager * @return */ @Bean("shiroFilter") public ShiroFilterFactoryBean shiroFilterFactoryBean(SecurityManager securityManager) { log.info("----------------加载shiro权限过滤器---------------"); ShiroFilterFactoryBean shiroFilterFactoryBean = new ShiroFilterFactoryBean(); shiroFilterFactoryBean.setLoginUrl("/account/unauth"); shiroFilterFactoryBean.setSecurityManager(securityManager); Map<String, Filter> filterMap = new HashMap<>(); filterMap.put("authc", new LoginFormAuthenticationFilter()); shiroFilterFactoryBean.setFilters(filterMap); Map<String, String> pathMap = new HashMap<>(); pathMap.put("/js/**", "anon"); pathMap.put("/images/**", "anon"); pathMap.put("/plugins/**", "anon"); pathMap.put("/webjars/**", "anon"); pathMap.put("/account/login", "anon"); pathMap.put("/swagger-ui.html", "anon"); pathMap.put("/swagger-resources/**", "anon"); pathMap.put("/v2/**", "anon"); // pathMap.put("/appsvr/**", "anon"); pathMap.put("/**", "authc"); shiroFilterFactoryBean.setFilterChainDefinitionMap(pathMap); return shiroFilterFactoryBean; } /*** * Shiro 用于生效注解 * @param securityManager * @return */ @Bean public AuthorizationAttributeSourceAdvisor authorizationAttributeSourceAdvisor(SecurityManager securityManager) { log.info("----------------加载SourceAdvisor---------------"); AuthorizationAttributeSourceAdvisor authorizationAttributeSourceAdvisor = new AuthorizationAttributeSourceAdvisor(); authorizationAttributeSourceAdvisor.setSecurityManager(securityManager); return authorizationAttributeSourceAdvisor; } }Realm import com.baomidou.mybatisplus.mapper.EntityWrapper; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang.builder.ReflectionToStringBuilder; import org.apache.commons.lang.builder.ToStringStyle; import org.apache.shiro.SecurityUtils; import org.apache.shiro.authc.*; import org.apache.shiro.authz.AuthorizationInfo; import org.apache.shiro.authz.SimpleAuthorizationInfo; import org.apache.shiro.realm.AuthorizingRealm; import org.apache.shiro.subject.PrincipalCollection; import org.apache.shiro.subject.Subject; import org.apache.shiro.util.ByteSource; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @Slf4j @Service public class ShiroRealm extends AuthorizingRealm { @Autowired private LoginService loginService; @Autowired private BusUserService busUserService; @Autowired private BusUserRoleService busUserRoleService; @Autowired private BaseRoleService baseRoleService; @Value("${shiroRealm.BIAuthentic}") private Boolean authentic; @Override protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principalCollection) { String userName = (String) super.getAvailablePrincipal(principalCollection); log.info("登录验证,用户信息----{}", userName); SimpleAuthorizationInfo simpleAuthorizationInfo = new SimpleAuthorizationInfo(); simpleAuthorizationInfo.addStringPermission("authc"); Subject subject=SecurityUtils.getSubject(); List<String> roleList = (List<String>) subject.getSession().getAttribute("roleCodeList"); simpleAuthorizationInfo.addRoles(roleList); return simpleAuthorizationInfo; } @Override protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authenticationToken) throws AuthenticationException { log.info("------------------Shiro身份认证-----------------"); BILoginToken token = (BILoginToken) authenticationToken; if (null == token) { throw new AuthenticationException(); } String userName = token.getUsername(); String password = String.valueOf(token.getPassword()); String validCode = token.getValidCode(); String requestId = token.getRequestId(); log.info("token中的userName:" + userName + " validCode:" + validCode + " requestId:" + requestId); //查询用户角色关系表 BusUserRole busUserRole = new BusUserRole(); busUserRole.setUserId(busUser.getId()); EntityWrapper<BusUserRole> busUserRoleEntityWrapper = new EntityWrapper<>(busUserRole); List<BusUserRole> busUserRoleList = busUserRoleService.selectList(busUserRoleEntityWrapper); List<String>roleCodeList=new ArrayList<>(); List<String> roleIdList = new ArrayList<>(); if (0 < busUserRoleList.size()) { for (BusUserRole temp : busUserRoleList) { roleIdList.add(temp.getRoleId()); } } log.info("用户的角色Id为:" + JsonUtil.objectToJson(roleIdList)); //查询角色列表 List<BaseRole> baseRoleList = baseRoleService.getRoleByRoleIds(roleIdList); log.info("查询到的角色列表为:" + JsonUtil.objectToJson(baseRoleList)); List<Integer> roleList = new ArrayList<>(); for (BaseRole temp : baseRoleList) { String roleCode = temp.getId(); if (RoleEnum.ROLE_CODE_OPERATION.getDesc().equals(roleCode)) { roleList.add(1); } if (RoleEnum.ROLE_CODE_SALE.getDesc().equals(roleCode)) { roleList.add(2); } if (RoleEnum.ROLE_CODE_ADMIN.getDesc().equals(roleCode)) { roleList.add(0); } roleCodeList.add(temp.getRoleCode()); } //token返回赋值 token.setBaseRoleList(roleList); token.setUsername(busUser.getUsername()); token.setUm(busUser.getUm()); token.setId(busUser.getId()); SimpleAuthenticationInfo simpleAuthenticationInfo = new SimpleAuthenticationInfo(userName, password, ByteSource.Util.bytes(userName), getName()); Subject subject = SecurityUtils.getSubject(); subject.getSession().setAttribute("userInfo", busUser); subject.getSession().setAttribute("roleList", baseRoleList); subject.getSession().setAttribute("roleCodeList",roleCodeList); return simpleAuthenticationInfo; } }

资源下载

更多资源
优质分享App

优质分享App

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

用户登录
用户注册