﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>语源科技BlogJava-willpower88</title><link>http://www.blogjava.net/willpower88/</link><description>对JAVA有点理解了……</description><language>zh-cn</language><lastBuildDate>Tue, 28 Apr 2026 21:29:23 GMT</lastBuildDate><pubDate>Tue, 28 Apr 2026 21:29:23 GMT</pubDate><ttl>60</ttl><item><title>gland debug.  Got a connection, launched process </title><link>http://www.blogjava.net/willpower88/archive/2024/02/04/451359.html</link><dc:creator>一凡</dc:creator><author>一凡</author><pubDate>Sun, 04 Feb 2024 05:57:00 GMT</pubDate><guid>http://www.blogjava.net/willpower88/archive/2024/02/04/451359.html</guid><wfw:comment>http://www.blogjava.net/willpower88/comments/451359.html</wfw:comment><comments>http://www.blogjava.net/willpower88/archive/2024/02/04/451359.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/willpower88/comments/commentRss/451359.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/willpower88/services/trackbacks/451359.html</trackback:ping><description><![CDATA[此问题是由于升级 macos sonoma 14.2.1 引起的<br />解决办法，重新安装xcode&nbsp;&nbsp;<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000; ">rm&nbsp;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">rf&nbsp;</span><span style="color: #000000; ">/</span><span style="color: #000000; ">Library</span><span style="color: #000000; ">/</span><span style="color: #000000; ">Developer</span><span style="color: #000000; ">/</span><span style="color: #000000; ">CommandLineTools<br />xcode</span><span style="color: #000000; ">-</span><span style="color: #0000FF; ">select</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">--</span><span style="color: #000000; ">install</span></div><img src ="http://www.blogjava.net/willpower88/aggbug/451359.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/willpower88/" target="_blank">一凡</a> 2024-02-04 13:57 <a href="http://www.blogjava.net/willpower88/archive/2024/02/04/451359.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Springboot整合activiti</title><link>http://www.blogjava.net/willpower88/archive/2023/11/10/451269.html</link><dc:creator>一凡</dc:creator><author>一凡</author><pubDate>Fri, 10 Nov 2023 07:56:00 GMT</pubDate><guid>http://www.blogjava.net/willpower88/archive/2023/11/10/451269.html</guid><wfw:comment>http://www.blogjava.net/willpower88/comments/451269.html</wfw:comment><comments>http://www.blogjava.net/willpower88/archive/2023/11/10/451269.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/willpower88/comments/commentRss/451269.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/willpower88/services/trackbacks/451269.html</trackback:ping><description><![CDATA[<div><div style="background-color:#132623;color:#a8afbe;font-family:'JetBrains Mono',monospace;font-size:10.5pt;white-space:pre;"><span style="color:#2ea9aa;"># </span>Springboot<span style="font-family:'Menlo-Regular',monospace;">整合</span>activiti<br />源代码：<span style="font-size: 10.5pt;"></span><a href="https://gitee.com/yifan88899/acttest"><span style="font-size: 10.5pt;">https://gitee.com/yifan88899/acttest</span><br /></a><br /><span style="color:#2ea9aa;">## </span><span style="font-family:'Menlo-Regular',monospace;">版本说明<br /></span><span style="color:#2ea9aa;">- </span>springboot 2.4.2<br /><span style="color:#2ea9aa;">- </span>activiti 7.1.0.M6<br /><span style="color:#2ea9aa;">- </span>mysql 8.0.28<br /><span style="color:#2ea9aa;">## </span><span style="font-family:'Menlo-Regular',monospace;">插件安装<br /></span><span style="color:#2ea9aa;">- </span>Activiti BPMN visualizer<br /><span style="color:#2ea9aa;">## </span>Bpmn<span style="font-family:'Menlo-Regular',monospace;">流程图位置<br /></span><span style="color:#2ea9aa;">- </span><span style="font-family:'Menlo-Regular',monospace;">流程图</span>xml<span style="font-family:'Menlo-Regular',monospace;">和</span>png<span style="font-family:'Menlo-Regular',monospace;">需放在</span>resources/processes<span style="font-family:'Menlo-Regular',monospace;">下<br /></span><span style="color:#2ea9aa;">## </span>Test<br /><span style="color:#2ea9aa;">- </span>Test Case <span style="font-family:'Menlo-Regular',monospace;">都可执行，包括：<br /></span> <span style="color:#2ea9aa;">  - </span><span style="font-family:'Menlo-Regular',monospace;">流程查询<br /></span> <span style="color:#2ea9aa;">  - </span><span style="font-family:'Menlo-Regular',monospace;">流程部署<br /></span> <span style="color:#2ea9aa;">  - </span><span style="font-family:'Menlo-Regular',monospace;">流程启动<br /></span> <span style="color:#2ea9aa;">  - </span><span style="font-family:'Menlo-Regular',monospace;">流程拾取、完成操作<br /></span><span style="color:#2ea9aa;">## </span>Mysql<br /><span style="color:#2ea9aa;">- </span><span style="font-family:'Menlo-Regular',monospace;">需要启动</span>Mysql8<br /><span style="color:#2ea9aa;">- </span><span style="font-family:'Menlo-Regular',monospace;">数据库名</span>Activiti7<br /><span style="color:#2ea9aa;">- </span>activiti<span style="font-family:'Menlo-Regular',monospace;">会版建表<br /></span><span style="font-family:'Menlo-Regular',monospace;"><br /></span></div></div><img src ="http://www.blogjava.net/willpower88/aggbug/451269.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/willpower88/" target="_blank">一凡</a> 2023-11-10 15:56 <a href="http://www.blogjava.net/willpower88/archive/2023/11/10/451269.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>mysql8-root密码重置</title><link>http://www.blogjava.net/willpower88/archive/2021/08/05/435941.html</link><dc:creator>一凡</dc:creator><author>一凡</author><pubDate>Thu, 05 Aug 2021 10:06:00 GMT</pubDate><guid>http://www.blogjava.net/willpower88/archive/2021/08/05/435941.html</guid><wfw:comment>http://www.blogjava.net/willpower88/comments/435941.html</wfw:comment><comments>http://www.blogjava.net/willpower88/archive/2021/08/05/435941.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/willpower88/comments/commentRss/435941.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/willpower88/services/trackbacks/435941.html</trackback:ping><description><![CDATA[<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all;"><div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all;"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080; ">1、打开my.cnf 加入&nbsp;</span><span style="color: #333333; font-family: -apple-system, &quot;SF UI Text&quot;, Arial, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei&quot;, &quot;WenQuanYi Micro Hei&quot;, sans-serif, SimHei, SimSun; font-size: 16px; background-color: #ffffff;">skip-grant-tables</span><br /><span style="color: #008080; ">2、mysql.service stop &amp;&amp; mysql.service start<br />3、清空root密码 并 退出<br /></span>&nbsp; &nbsp;&nbsp;<span style="background-color: #ffffff; color: #333333; font-family: -apple-system, &quot;SF UI Text&quot;, Arial, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei&quot;, &quot;WenQuanYi Micro Hei&quot;, sans-serif, SimHei, SimSun; font-size: 16px;">update mysql.user&nbsp;set&nbsp;authentication_string=''&nbsp;where&nbsp;user='root';&nbsp;&nbsp;</span><span style="color: #008080; "><br /></span><span style="color: #008080; ">4、</span><span style="color: #008080;">mysql.service stop &amp;&amp; mysql.service start<br /></span>5、mysql -root&nbsp; &nbsp;免密登录并修改root密码<br />&nbsp; &nbsp;&nbsp;<span style="color: #0000FF; ">alter</span>&nbsp;<span style="color: #FF00FF; ">user</span>&nbsp;<span style="color: #FF0000; ">'</span><span style="color: #FF0000; ">root</span><span style="color: #FF0000; ">'</span>@<span style="color: #FF0000; ">'</span><span style="color: #FF0000; ">%</span><span style="color: #FF0000; ">'</span>&nbsp;identified&nbsp;<span style="color: #0000FF; ">by</span>&nbsp;<span style="color: #FF0000; ">'</span><span style="color: #FF0000; ">pass$123</span><span style="color: #FF0000; ">'</span>;<br />&nbsp; &nbsp;&nbsp;<span style="color: #0000ff;">alter</span>&nbsp;<span style="color: #ff00ff;">user</span>&nbsp;<span style="color: #ff0000;">'</span><span style="color: #ff0000;">root</span><span style="color: #ff0000;">'</span>@<span style="color: #ff0000;">'localhost</span><span style="color: #ff0000;">'</span>&nbsp;identified&nbsp;<span style="color: #0000ff;">by</span>&nbsp;<span style="color: #ff0000;">'</span><span style="color: #ff0000;">pass$123</span><span style="color: #ff0000;">'</span>;<br /><br />确定是否支持远程登录，host中有%的记录即支持<br /><div>select host, user, authentication_string, plugin from user;</div></div></div></div><img src ="http://www.blogjava.net/willpower88/aggbug/435941.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/willpower88/" target="_blank">一凡</a> 2021-08-05 18:06 <a href="http://www.blogjava.net/willpower88/archive/2021/08/05/435941.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>画图配色</title><link>http://www.blogjava.net/willpower88/archive/2021/06/22/435905.html</link><dc:creator>一凡</dc:creator><author>一凡</author><pubDate>Tue, 22 Jun 2021 09:46:00 GMT</pubDate><guid>http://www.blogjava.net/willpower88/archive/2021/06/22/435905.html</guid><wfw:comment>http://www.blogjava.net/willpower88/comments/435905.html</wfw:comment><comments>http://www.blogjava.net/willpower88/archive/2021/06/22/435905.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/willpower88/comments/commentRss/435905.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/willpower88/services/trackbacks/435905.html</trackback:ping><description><![CDATA[<br /><div><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->64e696&nbsp;绿色<br /><div>5a97ff 蓝色<br /><div>ffdb5a 黄色<br /><div>ff8b64 橙色<br /><div>ff5a65 红色<br /><div>e00b5d 粉红<br /><div>666666 深灰<br /><div>3cc7f5 浅蓝<br /><div>f5863c 浅橙<br /><div>b00072 枚红<br /><div>674ea7 紫色<br /><div>999999 灰色</div></div></div></div></div></div></div></div></div></div></div></div></div><img src ="http://www.blogjava.net/willpower88/aggbug/435905.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/willpower88/" target="_blank">一凡</a> 2021-06-22 17:46 <a href="http://www.blogjava.net/willpower88/archive/2021/06/22/435905.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>linux自动登录脚本</title><link>http://www.blogjava.net/willpower88/archive/2021/01/18/435774.html</link><dc:creator>一凡</dc:creator><author>一凡</author><pubDate>Mon, 18 Jan 2021 03:35:00 GMT</pubDate><guid>http://www.blogjava.net/willpower88/archive/2021/01/18/435774.html</guid><wfw:comment>http://www.blogjava.net/willpower88/comments/435774.html</wfw:comment><comments>http://www.blogjava.net/willpower88/archive/2021/01/18/435774.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/willpower88/comments/commentRss/435774.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/willpower88/services/trackbacks/435774.html</trackback:ping><description><![CDATA[<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->#!/usr/bin/expect<br />####################<br />set&nbsp;pass&nbsp;xxxx<br />set&nbsp;user&nbsp;yyyy<br />####################<br />spawn&nbsp;ssh&nbsp;-p&nbsp;35000&nbsp;-o&nbsp;StrictHostKeyChecking=no&nbsp;"${user}@xgrelay.xxxx.com"<br />expect&nbsp;{<br />&nbsp;&nbsp;-re&nbsp;".*Dkey.*"&nbsp;{&nbsp;gets&nbsp;stdin&nbsp;dkey;&nbsp;send&nbsp;"$dkey\r";&nbsp;exp_continue}<br />&nbsp;&nbsp;-re&nbsp;"Option&gt;:"&nbsp;&nbsp;{&nbsp;send&nbsp;"1\r"&nbsp;;}<br />&nbsp;&nbsp;-re&nbsp;"Password&gt;:"&nbsp;{&nbsp;send&nbsp;"$pass\r"&nbsp;;&nbsp;exp_continue&nbsp;}<br />&nbsp;&nbsp;-re&nbsp;"password:"&nbsp;{&nbsp;send&nbsp;"$pass\r"&nbsp;;&nbsp;exp_continue&nbsp;}<br />}</div><img src ="http://www.blogjava.net/willpower88/aggbug/435774.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/willpower88/" target="_blank">一凡</a> 2021-01-18 11:35 <a href="http://www.blogjava.net/willpower88/archive/2021/01/18/435774.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>mysql导出csv</title><link>http://www.blogjava.net/willpower88/archive/2020/09/10/435659.html</link><dc:creator>一凡</dc:creator><author>一凡</author><pubDate>Thu, 10 Sep 2020 14:08:00 GMT</pubDate><guid>http://www.blogjava.net/willpower88/archive/2020/09/10/435659.html</guid><wfw:comment>http://www.blogjava.net/willpower88/comments/435659.html</wfw:comment><comments>http://www.blogjava.net/willpower88/archive/2020/09/10/435659.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/willpower88/comments/commentRss/435659.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/willpower88/services/trackbacks/435659.html</trackback:ping><description><![CDATA[<div style="background-color: #eeeeee; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all;"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="font-size: 13px;">-- data export csv&nbsp; &nbsp;其中 $1=$1 如果不加指定分隔符不生效</span><br /><span style="font-size: 13px;">mysql&nbsp;</span><span style="font-size: 13px; color: #808080;">-</span><span style="font-size: 13px;">uadmin&nbsp;</span><span style="font-size: 13px; color: #808080;">-</span><span style="font-size: 13px;">ptest&nbsp;</span><span style="font-size: 13px; color: #808080;">-</span><span style="font-size: 13px;">h127.</span><span style="font-size: 13px; color: #800000; font-weight: bold;">0.0</span><span style="font-size: 13px;">.</span><span style="font-size: 13px; color: #800000; font-weight: bold;">1</span><span style="font-size: 13px;">&nbsp;</span><span style="font-size: 13px; color: #808080;">-</span><span style="font-size: 13px;">P3306&nbsp;</span><span style="font-size: 13px; color: #808080;">-</span><span style="font-size: 13px;">e&nbsp;"</span><span style="font-size: 13px; color: #0000ff;">select</span><span style="font-size: 13px;">&nbsp;</span><span style="font-size: 13px; color: #808080;">*</span><span style="font-size: 13px;">&nbsp;</span><span style="font-size: 13px; color: #0000ff;">from</span><span style="font-size: 13px;">&nbsp;test&nbsp;</span><span style="font-size: 13px; color: #0000ff;">where</span><span style="font-size: 13px;">&nbsp;create_time&nbsp;</span><span style="font-size: 13px; color: #808080;">&gt;</span><span style="font-size: 13px;">&nbsp;unix_timestamp(</span><span style="font-size: 13px; color: #ff0000;">'</span><span style="font-size: 13px; color: #ff0000;">2020-09-10&nbsp;00:00:00</span><span style="font-size: 13px; color: #ff0000;">'</span><span style="font-size: 13px;">)&nbsp;</span><span style="font-size: 13px; color: #808080;">and</span><span style="font-size: 13px;">&nbsp;status&nbsp;</span><span style="font-size: 13px; color: #808080;">=</span><span style="font-size: 13px;">&nbsp;</span><span style="font-size: 13px; color: #800000; font-weight: bold;">99</span><span style="font-size: 13px;">"&nbsp;</span><span style="font-size: 13px; color: #808080;">|</span><span style="font-size: 13px;">&nbsp;awk&nbsp;</span><span style="font-size: 13px; color: #ff0000;">'</span><span style="font-size: 13px; color: #ff0000;">{OFS=","}{$1=$1;print&nbsp;$0}</span><font color="#ff0000"><span style="font-size: 13px;">'</span></font><br /><br /><div>#csv中文转码</div><div>tmpfn="exempt-update-3.30.csv";iconv -c -s -f UTF-8 -t GBK $tmpfn &gt; /tmp/$tmpfn &amp;&amp; mv /tmp/$tmpfn .</div></div><img src ="http://www.blogjava.net/willpower88/aggbug/435659.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/willpower88/" target="_blank">一凡</a> 2020-09-10 22:08 <a href="http://www.blogjava.net/willpower88/archive/2020/09/10/435659.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>CSV中文转码</title><link>http://www.blogjava.net/willpower88/archive/2020/04/20/435380.html</link><dc:creator>一凡</dc:creator><author>一凡</author><pubDate>Mon, 20 Apr 2020 02:03:00 GMT</pubDate><guid>http://www.blogjava.net/willpower88/archive/2020/04/20/435380.html</guid><wfw:comment>http://www.blogjava.net/willpower88/comments/435380.html</wfw:comment><comments>http://www.blogjava.net/willpower88/archive/2020/04/20/435380.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/willpower88/comments/commentRss/435380.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/willpower88/services/trackbacks/435380.html</trackback:ping><description><![CDATA[<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008000; ">#</span><span style="color: #008000; ">!/bin/bash</span><span style="color: #008000; "><br /></span><br /><span style="color: #0000FF; ">for</span>&nbsp;f&nbsp;in&nbsp;<span style="font-weight: bold;">"</span><span style="font-weight: bold;">$@</span><span style="font-weight: bold;">"</span>;&nbsp;<span style="color: #0000FF; ">do</span><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;[&nbsp;-f&nbsp;<span style="font-weight: bold;">"</span><span style="font-weight: bold;">$f</span><span style="font-weight: bold;">"</span>&nbsp;];&nbsp;then<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;iconv&nbsp;-s&nbsp;-c&nbsp;-f&nbsp;UTF8&nbsp;-t&nbsp;GBK&nbsp;<span style="font-weight: bold;">"</span><span style="font-weight: bold;">$f</span><span style="font-weight: bold;">"</span>&nbsp;&gt;&nbsp;/tmp/<span style="color: #800080; ">$f</span>.tmp<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mv&nbsp;/tmp/<span style="color: #800080; ">$f</span>.tmp&nbsp;<span style="font-weight: bold;">"</span><span style="font-weight: bold;">$f</span><span style="font-weight: bold;">"</span><br />&nbsp;&nbsp;&nbsp;&nbsp;fi<br />done</div><img src ="http://www.blogjava.net/willpower88/aggbug/435380.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/willpower88/" target="_blank">一凡</a> 2020-04-20 10:03 <a href="http://www.blogjava.net/willpower88/archive/2020/04/20/435380.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>python日志提取</title><link>http://www.blogjava.net/willpower88/archive/2020/02/29/435180.html</link><dc:creator>一凡</dc:creator><author>一凡</author><pubDate>Fri, 28 Feb 2020 18:10:00 GMT</pubDate><guid>http://www.blogjava.net/willpower88/archive/2020/02/29/435180.html</guid><wfw:comment>http://www.blogjava.net/willpower88/comments/435180.html</wfw:comment><comments>http://www.blogjava.net/willpower88/archive/2020/02/29/435180.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/willpower88/comments/commentRss/435180.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/willpower88/services/trackbacks/435180.html</trackback:ping><description><![CDATA[<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008000; ">#</span><span style="color: #008000; ">&nbsp;-*-&nbsp;coding:&nbsp;utf-8&nbsp;-*-</span><span style="color: #008000; "><br />#</span><span style="color: #008000; ">!/usr/bin/python</span><span style="color: #008000; "><br /></span><br /><span style="color: #0000FF; ">import</span>&nbsp;re<br /><span style="color: #0000FF; ">import</span>&nbsp;io<br /><span style="color: #0000FF; ">import</span>&nbsp;sys<br /><br /><span style="color: #008000; ">#</span><span style="color: #008000; ">&nbsp;obj&nbsp;=&nbsp;re.compile(r'(?P&lt;ip&gt;.*?)-&nbsp;-&nbsp;\[(?P&lt;time&gt;.*?)\]&nbsp;"(?P&lt;request&gt;.*?)"&nbsp;(?P&lt;status&gt;.*?)&nbsp;(?P&lt;bytes&gt;.*?)&nbsp;"(?P&lt;referer&gt;.*?)"&nbsp;"(?P&lt;ua&gt;.*?)"')</span><span style="color: #008000; "><br />#</span><span style="color: #008000; ">&nbsp;example:xxxx"id":2640914,"orderId":144115188137125591xxxx"state":10xxxxx"<br /></span><span style="color: #008000; "># 日志整行都需要匹配，需要用的用具体正则匹配，如(\d{7})，不需要的用（.*)匹配，总之所有需要或不需要部分都用()括起来<br /></span>obj&nbsp;=&nbsp;re.compile(r<span style="color: #800000; ">'</span><span style="color: #800000; ">(.*"id":)(\d{7})(.*"orderId":)(\d{18})(.*"state":)(\d{2})(.*)</span><span style="color: #800000; ">'</span>)<br /><br /><span style="color: #0000FF; ">def</span>&nbsp;load_log(path):<br /><span style="color: #008000; ">#</span><span style="color: #008000; ">&nbsp;读取文件</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;with&nbsp;io.open(path,&nbsp;mode=<span style="color: #800000; ">"</span><span style="color: #800000; ">r</span><span style="color: #800000; ">"</span>,&nbsp;encoding=<span style="color: #800000; ">"</span><span style="color: #800000; ">utf-8</span><span style="color: #800000; ">"</span>)&nbsp;as&nbsp;f:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;line&nbsp;<span style="color: #0000FF; ">in</span>&nbsp;f:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;line&nbsp;=&nbsp;line.strip()<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;parse(line)<br /><br /><span style="color: #0000FF; ">def</span>&nbsp;stdin():<br /><span style="color: #008000; ">#</span><span style="color: #008000; ">&nbsp;读取管道输入</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;line&nbsp;<span style="color: #0000FF; ">in</span>&nbsp;sys.stdin:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;parse(line)<br /><br /><span style="color: #0000FF; ">def</span>&nbsp;parse(line):<br /><span style="color: #008000; ">#</span><span style="color: #008000; ">&nbsp;解析单行nginx日志</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">try</span>:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result&nbsp;=&nbsp;obj.match(line)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">print</span>(result.group(2,4,6))<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">except</span>:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">pass</span><br /><br /><span style="color: #0000FF; ">if</span>&nbsp;<span style="color: #800080; ">__name__</span>&nbsp;==&nbsp;<span style="color: #800000; ">'</span><span style="color: #800000; ">__main__</span><span style="color: #800000; ">'</span>:<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">#</span><span style="color: #008000; ">&nbsp;load_log("/tmp/227.log")</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;stdin()</div><img src ="http://www.blogjava.net/willpower88/aggbug/435180.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/willpower88/" target="_blank">一凡</a> 2020-02-29 02:10 <a href="http://www.blogjava.net/willpower88/archive/2020/02/29/435180.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>gin跨域</title><link>http://www.blogjava.net/willpower88/archive/2019/12/26/434991.html</link><dc:creator>一凡</dc:creator><author>一凡</author><pubDate>Thu, 26 Dec 2019 03:17:00 GMT</pubDate><guid>http://www.blogjava.net/willpower88/archive/2019/12/26/434991.html</guid><wfw:comment>http://www.blogjava.net/willpower88/comments/434991.html</wfw:comment><comments>http://www.blogjava.net/willpower88/archive/2019/12/26/434991.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/willpower88/comments/commentRss/434991.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/willpower88/services/trackbacks/434991.html</trackback:ping><description><![CDATA[<ol><li>新增中间件cors</li><pre style="background-color:#0f111a;color:#c3cee3;font-family:'Menlo';font-size:11.3pt;"><pre style="font-family: Menlo; font-size: 11.3pt;"><span style="color:#c792ea;font-style:italic;">func </span><span style="color:#808080;">Cors</span><span style="color:#89ddff;">() </span><span style="color:#808080;">gin</span><span style="color:#89ddff;">.</span><span style="color:#808080;">HandlerFunc </span><span style="color:#89ddff;">{<br /></span> <span style="color:#c792ea;font-style:italic;">return func</span><span style="color:#89ddff;">(</span><span style="color:#808080;">c </span><span style="color:#89ddff;">*</span><span style="color:#808080;">gin</span><span style="color:#89ddff;">.</span><span style="color:#808080;">Context</span><span style="color:#89ddff;">) {<br /></span> <span style="color:#808080;">method </span><span style="color:#89ddff;">:= </span><span style="color:#808080;">c</span><span style="color:#89ddff;">.</span><span style="color:#808080;">Request</span><span style="color:#89ddff;">.</span><span style="color:#808080;">Method<br /></span><span style="color:#808080;"><br /></span><span style="color:#808080;">      c</span><span style="color:#89ddff;">.</span><span style="color:#808080;">Header</span><span style="color:#89ddff;">(</span><span style="color:#c3e88d;">"Access-Control-Allow-Origin"</span><span style="color:#89ddff;">, </span><span style="color:#c3e88d;">"*"</span><span style="color:#89ddff;">)   </span><span style="color:#717cb4;font-style:italic;">//必选<br /></span> &nbsp;&nbsp;&nbsp;&nbsp; <span style="color:#808080;">c</span><span style="color:#89ddff;">.</span><span style="color:#808080;">Header</span><span style="color:#89ddff;">(</span><span style="color:#c3e88d;">"Access-Control-Allow-Headers"</span><span style="color:#89ddff;">, </span><span style="color:#c3e88d;">"*"</span><span style="color:#89ddff;">)  </span><span style="color:#717cb4;font-style:italic;">//可选  如果request有header, 必选<br /></span><span style="color:#717cb4;font-style:italic;">&nbsp;&nbsp;&nbsp;&nbsp;  //c.Header("Access-Control-Allow-Credentials", "true")  //可选<br /></span><span style="color:#717cb4;font-style:italic;">      //c.Header("Access-Control-Allow-Methods", "*")  //可选<br /></span><span style="color:#717cb4;font-style:italic;">      //c.Header("Access-Control-Expose-Headers", "*")  //可选<br /></span><span style="color:#717cb4;font-style:italic;"><br /></span><span style="color:#717cb4;font-style:italic;">      //放行所有OPTIONS方法<br /></span> <span style="color:#c792ea;font-style:italic;">if </span><span style="color:#808080;">method </span><span style="color:#89ddff;">== </span><span style="color:#c3e88d;">"OPTIONS" </span><span style="color:#89ddff;">{<br /></span> <span style="color:#808080;">c</span><span style="color:#89ddff;">.</span><span style="color:#808080;">AbortWithStatus</span><span style="color:#89ddff;">(</span><span style="color:#808080;">http</span><span style="color:#89ddff;">.</span><span style="color:#808080;">StatusOK</span><span style="color:#89ddff;">)<br /></span><span style="color:#89ddff;">      }<br /></span> <span style="color:#717cb4;font-style:italic;">// 处理请求<br /></span> <span style="color:#808080;">c</span><span style="color:#89ddff;">.</span><span style="color:#808080;">Next</span><span style="color:#89ddff;">()<br /></span><span style="color:#89ddff;">   }<br /></span><span style="color:#89ddff;">}<br /></span></pre></pre><li>在router里增加cors，必须在group之前，全局设置<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><pre style="background-color:#0f111a;color:#c3cee3;font-family:'Menlo';font-size:10.5pt;"><span style="color:#808080;">r</span><span style="color:#89ddff;">.</span><span style="color:#808080;">Use</span><span style="color:#89ddff;">(</span><span style="color:#808080;">gin</span><span style="color:#89ddff;">.</span><span style="color:#808080;">Logger</span><span style="color:#89ddff;">(), </span><span style="color:#808080;">gin</span><span style="color:#89ddff;">.</span><span style="color:#808080;">Recovery</span><span style="color:#89ddff;">(), </span><span style="color:#808080;">cors</span><span style="color:#89ddff;">.</span><span style="color:#808080;">Cors</span><span style="color:#89ddff;">())</span></pre></div></li><li>测试代码，header设置不能多于cors设置<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><pre style="background-color:#0f111a;color:#c3cee3;font-family:'Menlo';font-size:10.5pt;"><span style="color:#89ddff;">&lt;!DOCTYPE </span><span style="color:#ffcb6b;font-style:italic;">html</span><span style="color:#89ddff;">&gt;<br /></span><span style="color:#808080;">&lt;html </span><span style="color:#ffcb6b;font-style:italic;">lang</span><span style="color:#c3e88d;">="en"</span><span style="color:#89ddff;">&gt;<br /></span><span style="color:#89ddff;">&lt;</span><span style="color:#f07178;">head</span><span style="color:#89ddff;">&gt;<br /></span><span style="color:#89ddff;">    &lt;</span><span style="color:#f07178;">meta </span><span style="color:#ffcb6b;font-style:italic;">charset</span><span style="color:#c3e88d;">="UTF-8"</span><span style="color:#89ddff;">&gt;<br /></span><span style="color:#89ddff;">    &lt;</span><span style="color:#f07178;">title</span><span style="color:#89ddff;">&gt;</span>Title<span style="color:#89ddff;">&lt;/</span><span style="color:#f07178;">title</span><span style="color:#89ddff;">&gt;<br /></span><span style="color:#89ddff;">&lt;/</span><span style="color:#f07178;">head</span><span style="color:#89ddff;">&gt;<br /></span><span style="color:#89ddff;">&lt;</span><span style="color:#f07178;">link </span><span style="color:#ffcb6b;font-style:italic;">type</span><span style="color:#c3e88d;">="test/css" </span><span style="color:#ffcb6b;font-style:italic;">href</span><span style="color:#c3e88d;">="css/style.css" </span><span style="color:#ffcb6b;font-style:italic;">rel</span><span style="color:#c3e88d;">="stylesheet"</span><span style="color:#89ddff;">&gt;<br /></span><span style="color:#89ddff;">&lt;</span><span style="color:#f07178;">script </span><span style="color:#ffcb6b;font-style:italic;">type</span><span style="color:#c3e88d;">="text/javascript" </span><span style="color:#ffcb6b;font-style:italic;">src</span><span style="color:#c3e88d;">="https://code.jquery.com/jquery-3.2.1.min.js"</span><span style="color:#89ddff;">&gt;&lt;/</span><span style="color:#f07178;">script</span><span style="color:#89ddff;">&gt;  <br /></span><span style="color:#89ddff;">&lt;</span><span style="color:#f07178;">script </span><span style="color:#ffcb6b;font-style:italic;">type</span><span style="color:#c3e88d;">="text/javascript"</span><span style="color:#89ddff;">&gt;<br /></span> $<span style="color:#89ddff;">(</span><span style="color:#c792ea;font-style:italic;">function</span><span style="color:#89ddff;">(){<br /></span> $<span style="color:#89ddff;">(</span><span style="color:#c3e88d;">"</span><span style="color:#808080;">#cors</span><span style="color:#c3e88d;">"</span><span style="color:#89ddff;">).</span><span style="color:#82aaff;">click</span><span style="color:#89ddff;">(<br /></span> <span style="color:#c792ea;font-style:italic;">function</span><span style="color:#89ddff;">(){<br /></span> $<span style="color:#89ddff;">.</span>ajax<span style="color:#89ddff;">({<br /></span> <span style="color:#eeffff;">headers</span><span style="color:#89ddff;">:{<br /></span> <span style="color:#c3e88d;">"Content-Type"</span><span style="color:#89ddff;">:</span><span style="color:#c3e88d;">"application/json;charset=UTF-8"</span><span style="color:#89ddff;">,<br /></span> <span style="color:#c3e88d;">"Access"</span><span style="color:#89ddff;">:</span><span style="color:#c3e88d;">"adsad"</span><span style="color:#89ddff;">,<br /></span> <span style="color:#c3e88d;">"Access-Token"</span><span style="color:#89ddff;">:</span><span style="color:#c3e88d;">"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6InRlc3QiLCJwYXNzd29yZCI6InRlc3QxMjM0NTYiLCJleHAiOjE1NzczMzY3MTIsImlzcyI6Imdpbi1ibG9nIn0.wMlQXqZO2V0LR-FIgDh45LWI0OYMYi6an_NvRmF0Nug"<br /></span> <span style="color:#89ddff;">},<br /></span> <span style="color:#eeffff;">url</span><span style="color:#89ddff;">:</span><span style="color:#c3e88d;">"</span><span style="color:#808080;">http://127.0.0.1:8000/api/v1/articles</span><span style="color:#c3e88d;">"</span><span style="color:#89ddff;">,<br /></span> <span style="color:#82aaff;">success</span><span style="color:#89ddff;">:</span><span style="color:#c792ea;font-style:italic;">function</span><span style="color:#89ddff;">(</span><span style="color:#f78c6c;">data</span><span style="color:#89ddff;">){<br /></span> <span style="color:#ffcb6b;">console</span><span style="color:#89ddff;">.</span><span style="color:#82aaff;">log</span><span style="color:#89ddff;">(</span><span style="color:#c3e88d;">"start"</span><span style="color:#89ddff;">);<br /></span> <span style="color:#ffcb6b;">console</span><span style="color:#89ddff;">.</span><span style="color:#82aaff;">log</span><span style="color:#89ddff;">(</span><span style="color:#f78c6c;">data</span><span style="color:#89ddff;">);<br /></span><span style="color:#89ddff;">            }<br /></span><span style="color:#89ddff;">         })<br /></span><span style="color:#89ddff;">      });<br /></span><span style="color:#89ddff;">   });<br /></span><span style="color:#89ddff;">&lt;/</span><span style="color:#f07178;">script</span><span style="color:#89ddff;">&gt;<br /></span><span style="color:#89ddff;">&lt;</span><span style="color:#f07178;">body</span><span style="color:#89ddff;">&gt;<br /></span><span style="color:#89ddff;">   &lt;</span><span style="color:#f07178;">input </span><span style="color:#ffcb6b;font-style:italic;">type</span><span style="color:#c3e88d;">="button" </span><span style="color:#ffcb6b;font-style:italic;">id</span><span style="color:#c3e88d;">="cors" </span><span style="color:#ffcb6b;font-style:italic;">value</span><span style="color:#c3e88d;">="core跨域测试"</span><span style="color:#89ddff;">&gt;<br /></span><span style="color:#89ddff;">&lt;/</span><span style="color:#f07178;">body</span><span style="color:#89ddff;">&gt;<br /></span><span style="color:#808080;">&lt;/html&gt;<br /></span></pre></div></li><li><span style="color: red;"><strong>请求的headers数量、名称与cors里的设置需要严格对应，不然报错如下<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000; ">Access&nbsp;to&nbsp;XMLHttpRequest&nbsp;at&nbsp;</span><span style="color: #000000; ">'</span><span style="color: #000000; ">http://127.0.0.1:8000/api/v1/articles</span><span style="color: #000000; ">'</span><span style="color: #000000; ">&nbsp;from&nbsp;origin&nbsp;</span><span style="color: #000000; ">'</span><span style="color: #000000; ">http://localhost:9999</span><span style="color: #000000; ">'</span><span style="color: #000000; ">&nbsp;has&nbsp;been&nbsp;blocked&nbsp;by&nbsp;CORS&nbsp;policy:&nbsp;Request&nbsp;header&nbsp;field&nbsp;access&nbsp;is&nbsp;not&nbsp;allowed&nbsp;by&nbsp;Access</span><span style="color: #000000; ">-</span><span style="color: #000000; ">Control</span><span style="color: #000000; ">-</span><span style="color: #000000; ">Allow</span><span style="color: #000000; ">-</span><span style="color: #000000; ">Headers&nbsp;in&nbsp;preflight&nbsp;response.</span></div></strong></span></li></ol><img src ="http://www.blogjava.net/willpower88/aggbug/434991.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/willpower88/" target="_blank">一凡</a> 2019-12-26 11:17 <a href="http://www.blogjava.net/willpower88/archive/2019/12/26/434991.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>gin-swagger鉴权（auth）</title><link>http://www.blogjava.net/willpower88/archive/2019/12/23/434981.html</link><dc:creator>一凡</dc:creator><author>一凡</author><pubDate>Mon, 23 Dec 2019 08:08:00 GMT</pubDate><guid>http://www.blogjava.net/willpower88/archive/2019/12/23/434981.html</guid><wfw:comment>http://www.blogjava.net/willpower88/comments/434981.html</wfw:comment><comments>http://www.blogjava.net/willpower88/archive/2019/12/23/434981.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/willpower88/comments/commentRss/434981.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/willpower88/services/trackbacks/434981.html</trackback:ping><description><![CDATA[1、在main函数中增加全局配置，其中@name就是你确定的鉴权参数名，我的是token,&nbsp; &nbsp; @<span style="color: #008000; font-size: 13px; background-color: #eeeeee;">in&nbsp;header </span><span style="color: #008000; font-size: 13px; background-color: #ffffff;">说明参数放在header，你的鉴权代码需要从header中获取<br /></span><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><br /><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;@title&nbsp;gin-blog&nbsp;API<br /></span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;@version&nbsp;0.0.1<br /></span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;@description&nbsp;This&nbsp;is&nbsp;a&nbsp;gin&nbsp;blog&nbsp;example<br /></span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;@securityDefinitions.apikey&nbsp;ApiKeyAuth<br /></span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;@in&nbsp;header<br /></span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;@name&nbsp;token<br /></span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;@BasePath&nbsp;/</span></div><br />2、在具体的handler里添加如下注释，此处的ApiKeyAuth和main中的apike对应，切记不要修改<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;@Security&nbsp;ApiKeyAuth</span></div><span style="color: #008000; font-size: 13px; background-color: #ffffff;"><br /></span><span style="font-size: 13px; background-color: #ffffff;">3、swagger页面如下：<br /></span><div><div><img src="http://www.blogjava.net/images/blogjava_net/willpower88/WechatIMG395.jpeg" border="0" alt="" /><br /><br />4、添加token后，后续所有有鉴权接口的header里自动携带token</div></div><img src ="http://www.blogjava.net/willpower88/aggbug/434981.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/willpower88/" target="_blank">一凡</a> 2019-12-23 16:08 <a href="http://www.blogjava.net/willpower88/archive/2019/12/23/434981.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>