欢迎来到Heck's Blog,专业承接拿站、企业建站、仿站、网上商城架构、门户网站搭建、空间域名注册、软件定制等项目。关注网络安全,因为专注,所以专业,懂得放弃,才能收获。有事请发邮件至i@heckjj.com,请记住本站网址:http://www.heckjj.com,多谢。
8月5
x-www-form-urlencoded方式:

Map<String,Object>  map = new HashMap<>();
map.put("page_size","100")
map.put("ps", "100")
map.put("page_flag", "true")
Document doc = Jsoup.connect("http://www.zgetfl.org/qget/main_qget/sqgl/apLcChildAction.do?method=listApLcChildnew")
                    .header("useragent","Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36")
                    .header("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8")
                    .data("page_size","100")
                    .data("ps", "100")
                    .data("page_flag", "true")
                    .post();

application/json方式:

Map<String,String> map = new HashMap<>();
map.put("username","aaaa");
map.put("password","123456");
Gson gson = new Gson();
String parameter = gson.toJson(map);
Document doc = Jsoup.connect("localhost:8080/api/user/login")
                    .header("useragent","Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36")
                    .requestBody(parameter)
                    .ignoreContentType(true)
                    .post();
7月9
MySQL中,查询表(crawl_content)中字段(url)值重复的记录:

SELECT url, COUNT(*) AS sumCount FROM crawl_content GROUP BY url HAVING sumCount > 1;
说明:先用GROUP BY 对 url进行分组,同时使用COUNT(*)进行统计,再用HAVING来过滤大于1的,这样查找出来的就是重复的记录了。
7月9
nginx location语法

语法详解

语法规则: location [=|~|~*|^~] /uri/ { … }

= 开头表示精确匹配

^~ 开头表示uri以某个常规字符串开头,理解为匹配 url路径即可。nginx不对url做编码,因此请求为/static/20%/aa,可以被规则^~ /static/ /aa匹配到(注意是空格)。以xx开头

~ 开头表示区分大小写的正则匹配                     以xx结尾

~* 开头表示不区分大小写的正则匹配                以xx结尾

!~和!~*分别为区分大小写不匹配及不区分大小写不匹配 的正则

/ 通用匹配,任何请求都会匹配到。

7月3
nginx设置反向代理后,页面上的js css文件无法加载
问题现象:
  nginx配置反向代理后,网页可以正常访问,但是页面上的js css文件无法加载,页面样式乱了,图片也不显示。


    location / {
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_pass http://localhost:8080/;
    }
    
    #配置静态资源 解决js css 文件无法加载无法访问的问题,注意末尾不能有 /
    location ~ .*\.(jpg|js|html|mp3|gif|jpeg|png|bmp|swf|ico|css)$ {
      proxy_pass http://localhost:8080;
    }
    

#号注释的部分是后面加上去的,之前是没有,这个就是nginx的反向代理的配置文件;

    location ~ .*\.(jpg|js|html|mp3|gif|jpeg|png|bmp|swf|ico|css)$

加上这个就可以了
6月28

Shiro后台实现验证权限

15:18编程杂谈  From: 本站原创
今天在项目中发现一个问题:使用shiro的时候,虽然隐藏掉了一些菜单,但是当我们通过get请求直接访问菜单的时候还是会访问到,也就是shiro可以在界面实现隐藏一些信息,但是没有真正的根据权限码验证请求,于是想自己在后台实现验证。
  
需求:有权限(权限码是systemmanager:settings)的人可以点击系统设置跳转到系统设置页面,没权限的人看不到菜单,但是通过get访问可以访问到,于是需要在后台拦截。

实现思路:在需要精确验证的方法开始先验证权限,如果验证成功啥也不做,验证失败的话就抛出一个没有权限的异常。在拦截器中捕捉到异常就记录日志,并返回到提醒页面。


1.  验证Shiro权限的工具类(此工具还可以进一步完善,封装为判断是否有指定角色,或者有任意角色)


package com.microxiang.common.util;

import com.microxiang.common.constant.ResultCode;
import com.microxiang.common.exception.user.NoPermissionException;
import com.microxiang.common.system.vo.LoginUser;
import lombok.extern.slf4j.Slf4j;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.subject.Subject;

/**
* 验证shiro权限的工具类
*
* @author jiangjun
*/
@Slf4j
public class ShiroPermissionUtils {

    private ShiroPermissionUtils() {

    }

    /**
     * 检查当前用户是否有权限(任意一项)
     *
     * @param permissionCodes 任意权限
     * @throws NoPermissionException
     */
    public static void checkPermissionAny(String... permissionCodes) {
        if (permissionCodes == null || permissionCodes.length == 0) {
            return;
        }

        // 获取用户信息
        Subject currentUser = SecurityUtils.getSubject();
        for (String permission : permissionCodes) {
            boolean permitted = currentUser.isPermitted(permission);// 判断是否有权限
            if (permitted) {
                return;
            }
        }

        // 没权限就抛出一个异常
        Object principal = currentUser.getPrincipal();
        if (principal instanceof LoginUser) {
            LoginUser user = (LoginUser) principal;
            log.error("user {} no permission !", user.getUsername());
        }
        throw new NoPermissionException("user no permission !");
    }

    /**
     * 检查当前用户是否有权限(所有的)
     *
     * @param permissionCodes 任意权限
     * @throws NoPermissionException
     */
    public static void checkPermissionAll(String... permissionCodes) {
        if (permissionCodes == null || permissionCodes.length == 0) {
            return;
        }

        // 获取用户信息
        Subject currentUser = SecurityUtils.getSubject();
        for (String permission : permissionCodes) {
            boolean permitted = currentUser.isPermitted(permission);// 判断是否有权限
            if (!permitted) {
                // 没权限就抛出一个异常
                Object principal = currentUser.getPrincipal();
                if (principal instanceof LoginUser) {
                    LoginUser user = (LoginUser) principal;
                    log.error("user {} no permission !", user.getUsername());
                }
                throw new NoPermissionException("no permission ");
            }
        }
    }
}

6月17
如何怎么能把QQ昵称加上2020,²º²º上标小字符?? (QQ昵称右上角加数字2020)经常有很多人在这个问题,所以分享下。

²º²º复制上去就可以了

⁰ º ¹ ² ³ ⁴ ⁵ ⁶ ⁷ ⁸ ⁹₀ ₁ ₂ ₃ ₄ ₅ ₆ ₇ ₈ ₉⁰ º ¹ ² ³ ⁴ ⁵ ⁶ ⁷ ⁸ ⁹₀ ₁ ₂ ₃ ₄ ₅ ₆ ₇ ₈ ₉⁰ º ¹ ² ³ ⁴ ⁵ ⁶ ⁷ ⁸ ⁹₀ ₁ ₂ ₃ ₄ ₅ ₆ ₇ ₈ ₉⁰ º ¹ ² ³ ⁴ ⁵ ⁶ ⁷ ⁸ ⁹₀ ₁ ₂ ₃ ₄ ₅ ₆ ₇ ₈ ₉


用什么输入法可以打出 怎么_如何能把QQ昵称加上2020有右上标小字符?右上角标小字²º²º

怎么_如何能把QQ昵称加上²º²º有右上标小字符?右上角标小字²º²º,QQ昵称右上角小数字怎么打出来

怎么能把QQ昵称加上2020上标小字符?_微信昵称上面的小字和数字(上标或下标)是怎么弄出来的
搜狗输入只有01234这几个特殊上标符号,怎么办?有其他输入方式吗? 怎样给你的QQ昵称加上标小字2020
5月26
Spring Boot项目在多环境下(开发、生产或测试环境)调用不同配置文件方式:

我们知道,一个项目在开发环境、测试环境、生产环境,不同的环境会有不同的配置,比如数据库的配置就不同,那么怎么样才能做到,不用每次换环境的时候,都去修改这些配置呢,下面以我写的一个小案例来作说明。

如下图是我项目的三个配置文件,其中,application.yml是启动服务时,服务器会自动加载的配置文件,而application-dev.yml代表的是开发环境的配置文件,application-prod.yml代表的是生产环境的配置文件,后两个文件在启动服务时,服务器不会自动加载,那么在不同的环境中时怎么调用不同的文件的呢?

点击在新窗口中浏览此图片

方式一、修改配置文件方式

    修改application.yml配置文件,具体内容如下图:

点击在新窗口中浏览此图片

这样,在启动服务时,服务器就会通过application.yml文件去调用application-dev.yml文件。同理,若active: prod,那么服务在启动时,服务器就会调用application-prod.yml文件。也就是说,在开发环境时,只需将application.yml配置文件配置为"dev",而生产环境时,只需将“dev”改为“prod”就可以了。
5月22
通过IDE创建一个springboot项目

<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>//这行红色
</plugin>

提示spring-boot-maven-plugin not found。在网上找了有说是通过添加<pluginRepositories>过解决,但是测试之后发觉不起作用。 经过多次尝试,最终spring-boot-maven-plugin指定版本后成功解决。 修改后的pom.xml文件

<plugin>  
<groupId>org.springframework.boot</groupId>  
<artifactId>spring-boot-maven-plugin</artifactId>  
<version>2.1.3.RELEASE</version>
</plugin>

其实说白了就是没有加上这些Maven插件的版本号,导致Maven无法自动下载插件到本地,基本上提示这个not found的错误都是这个问题引起的。

maven-surefire-plugin、maven-compiler-plugin
这些插件也会出现这种问题,解决方案同上。只要你本地有下这些插件,不管哪个版本,就不会提示这个错误,去掉版本号也无所谓。
5月22
一般情况下我们springboot用Application的main方法启动 ,怎么配置成tomcat启动呢?
首先有几个步骤:

1、<packaging>jar</packaging> 改为=> <packaging>war</packaging>

2、  排除springboot内置和tomcat容器(注:这一步可选)      
      
       <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <!-- 移除嵌入式tomcat插件--> 
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-tomcat</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <!-- 移除内嵌Tomcat需要重新添加servlet -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>${servlet.version}</version>
            <scope>provided</scope>
        </dependency>

3、修改启动类,并重写初始化方法
我们平常用main方法启动的方式,都有一个App的启动类,代码如下:

@SpringBootApplication
public class Application {
public static void main(String[] args) {
  SpringApplication.run(Application.class, args);
}
}
5月19
cnpm : 无法加载文件 C:\Users\hecks\AppData\Roaming\npm\cnpm.ps1,因为在此系统上禁止运行脚本。
点击在新窗口中浏览此图片
win10搜索找到 powershell
点击在新窗口中浏览此图片
右键以管理员身份运行,

然后输入
set-ExecutionPolicy RemoteSigned

选择 A

再输入 get-ExecutionPolicy就可以了。
点击在新窗口中浏览此图片
分页: 1/51 第一页 1 2 3 4 5 6 7 8 9 10 下页 最后页 [ 显示模式: 摘要 | 列表 ]