??xml version="1.0" encoding="utf-8" standalone="yes"?>41Ʊ̳:BlogJava - 2017ϹƱ̳ͼ//www.scdqe.tw/all专注于Java技?/description>zh-cnMon, 21 Oct 2019 01:17:35 GMTMon, 21 Oct 2019 01:17:35 GMT60Cannot find module 'crypto-js?/title><link>//www.scdqe.tw/waterjava/archive/2019/10/19/434853.html</link><dc:creator>狼爱上狸</dc:creator><author>狼爱上狸</author><pubDate>Sat, 19 Oct 2019 03:23:00 GMT</pubDate><guid>//www.scdqe.tw/waterjava/archive/2019/10/19/434853.html</guid><wfw:comment>//www.scdqe.tw/waterjava/comments/434853.html</wfw:comment><comments>//www.scdqe.tw/waterjava/archive/2019/10/19/434853.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>//www.scdqe.tw/waterjava/comments/commentRss/434853.html</wfw:commentRss><trackback:ping>//www.scdqe.tw/waterjava/services/trackbacks/434853.html</trackback:ping><description><![CDATA[移植了老师的代码,出现了该问题,应该是js加密的问题,而本机中并没有使用过js加密,所以并没有该包的原因,遵循没有就安装的方式进行解决?br /><br />1.直接安装该包,网上大多数都是这个方法<br /><br />命令行代码如下:npm install crypto-js<br /><br />跟我上一篇文章出现的问题一样,npm需要安装的话由于要连接外网?9%的国内电脑肯定还是不行的,还是做国内资源映射<br /><br />2.做国内资源映?br /><br />命令行代码如下:npm install -g cnpm --registry=https://registry.npm.taobao.org<br /><br />这一步如果在之前做过则不需要,会记住映射的url<br /><br />3.在命令行输入跟第一步差不多的方?br /><br />命令行代码如下:cnpm install crypto-js<br /><br />在ionic开发中,需要typescript和nodejs的开发环境,其中很大部分在一开始安装了,但是如果要做更新或者下载一下需要的包的情况下就仍然需要做映射,才能正确安装新的环境?br /><br />感谢淘宝为开发者做的贡献?br />————————————————<br />版权声明:本文为CSDN博主「是阿晋啊」的原创文章,遵?CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明?br />原文链接:https://blog.csdn.net/qq_38255285/article/details/82793231<img src ="//www.scdqe.tw/waterjava/aggbug/434853.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="//www.scdqe.tw/waterjava/" target="_blank">狼爱上狸</a> 2019-10-19 11:23 <a href="//www.scdqe.tw/waterjava/archive/2019/10/19/434853.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>从游击队到正规军(?:马蜂窝旅游网的IM客户端架构演进和实践总结 - 2017ϹƱ̳ͼ//www.scdqe.tw/jb2011/archive/2019/10/17/434839.htmlJack JiangJack JiangThu, 17 Oct 2019 15:14:00 GMT//www.scdqe.tw/jb2011/archive/2019/10/17/434839.html//www.scdqe.tw/jb2011/comments/434839.html//www.scdqe.tw/jb2011/archive/2019/10/17/434839.html#Feedback0//www.scdqe.tw/jb2011/comments/commentRss/434839.html//www.scdqe.tw/jb2011/services/trackbacks/434839.html阅读全文

Jack Jiang 2019-10-17 23:14 发表评论
]]>
spring boot结合thymeleaf通过后台传入的数值循环生成标?/title><link>//www.scdqe.tw/fiele/archive/2019/10/16/434822.html</link><dc:creator>半导?/dc:creator><author>半导?/author><pubDate>Wed, 16 Oct 2019 08:06:00 GMT</pubDate><guid>//www.scdqe.tw/fiele/archive/2019/10/16/434822.html</guid><wfw:comment>//www.scdqe.tw/fiele/comments/434822.html</wfw:comment><comments>//www.scdqe.tw/fiele/archive/2019/10/16/434822.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>//www.scdqe.tw/fiele/comments/commentRss/434822.html</wfw:commentRss><trackback:ping>//www.scdqe.tw/fiele/services/trackbacks/434822.html</trackback:ping><description><![CDATA[<div class="bld"><pre style="background-color:#ffffff;color:#000000;font-family:'宋体';font-size:8.5pt;"><div class="bld"><span style='display: inline !important; float: none; background-color: #ffffff; color: rgba(0, 0, 0, 0.75); font-family: "Microsoft YaHei","SF Pro Display",Roboto,Noto,Arial,"PingFang SC",sans-serif; font-size: 24px; font-style: normal; font-variant: normal; font-weight: 700; letter-spacing: normal; orphans: 2; overflow-wrap: break-word; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;'>spring boot结合thymeleaf通过后台传入的数值循环生成标?/span></div><strong class="bld"></strong><em></em><u></u><sub></sub><sup></sup><strike></strike><br /></pre></div><strong class="bld"></strong><em></em><u></u><sub></sub><sup></sup><strike></strike><strong class="bld"></strong><em></em><u></u><sub></sub><sup></sup><strike></strike><strong class="bld"></strong><em></em><u></u><sub></sub><sup></sup><strike></strike><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"><span style="color: #000000; "> </span><span style="color: #000000; "><</span><span style="color: #000000; ">span th:each</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">i:${#numbers.sequence(1,page.pages)}</span><span style="color: #000000; ">"</span><span style="color: #000000; ">></span><span style="color: #000000; "><br />   </span><span style="color: #000000; "><</span><span style="color: #000000; ">span th:text</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">${i}</span><span style="color: #000000; ">"</span><span style="color: #000000; ">/></span><span style="color: #000000; "><br /></span><span style="color: #000000; "></</span><span style="color: #000000; ">span</span><span style="color: #000000; ">></span></div><img src ="//www.scdqe.tw/fiele/aggbug/434822.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="//www.scdqe.tw/fiele/" target="_blank">半导?/a> 2019-10-16 16:06 <a href="//www.scdqe.tw/fiele/archive/2019/10/16/434822.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>拿起键盘就是干:跟我一起徒手开发一套分布式IM系统 - 2017ϹƱ̳ͼ//www.scdqe.tw/jb2011/archive/2019/10/14/434809.htmlJack JiangJack JiangMon, 14 Oct 2019 14:49:00 GMT//www.scdqe.tw/jb2011/archive/2019/10/14/434809.html//www.scdqe.tw/jb2011/comments/434809.html//www.scdqe.tw/jb2011/archive/2019/10/14/434809.html#Feedback0//www.scdqe.tw/jb2011/comments/commentRss/434809.html//www.scdqe.tw/jb2011/services/trackbacks/434809.html阅读全文

Jack Jiang 2019-10-14 22:49 发表评论
]]>
模态框传?/title><link>//www.scdqe.tw/fiele/archive/2019/10/12/434804.html</link><dc:creator>半导?/dc:creator><author>半导?/author><pubDate>Sat, 12 Oct 2019 08:35:00 GMT</pubDate><guid>//www.scdqe.tw/fiele/archive/2019/10/12/434804.html</guid><wfw:comment>//www.scdqe.tw/fiele/comments/434804.html</wfw:comment><comments>//www.scdqe.tw/fiele/archive/2019/10/12/434804.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>//www.scdqe.tw/fiele/comments/commentRss/434804.html</wfw:commentRss><trackback:ping>//www.scdqe.tw/fiele/services/trackbacks/434804.html</trackback:ping><description><![CDATA[<div class="bld"><div class="bld">模态框传值:</div>https://blog.csdn.net/linhaiyun_ytdx/article/details/77417702</div><strong class="bld"></strong><em></em><u></u><sub></sub><sup></sup><strike></strike><img src ="//www.scdqe.tw/fiele/aggbug/434804.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="//www.scdqe.tw/fiele/" target="_blank">半导?/a> 2019-10-12 16:35 <a href="//www.scdqe.tw/fiele/archive/2019/10/12/434804.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>12306抢票带来的启示:看我如何用Go实现百万QPS的秒杀系统 - 2017ϹƱ̳ͼ//www.scdqe.tw/jb2011/archive/2019/10/12/434802.htmlJack JiangJack JiangSat, 12 Oct 2019 06:46:00 GMT//www.scdqe.tw/jb2011/archive/2019/10/12/434802.html//www.scdqe.tw/jb2011/comments/434802.html//www.scdqe.tw/jb2011/archive/2019/10/12/434802.html#Feedback0//www.scdqe.tw/jb2011/comments/commentRss/434802.html//www.scdqe.tw/jb2011/services/trackbacks/434802.html阅读全文

Jack Jiang 2019-10-12 14:46 发表评论
]]>
Spring Integration 中文手册 - GOOD - 2017ϹƱ̳ͼ//www.scdqe.tw/paulwong/archive/2019/10/11/434799.htmlpaulwongpaulwongFri, 11 Oct 2019 02:28:00 GMT//www.scdqe.tw/paulwong/archive/2019/10/11/434799.html//www.scdqe.tw/paulwong/comments/434799.html//www.scdqe.tw/paulwong/archive/2019/10/11/434799.html#Feedback0//www.scdqe.tw/paulwong/comments/commentRss/434799.html//www.scdqe.tw/paulwong/services/trackbacks/434799.htmlSpring Integration 中文手册 (1)


Spring Integration 中文手册 (2)

paulwong 2019-10-11 10:28 发表评论
]]>
2019.10.10 - 2017ϹƱ̳ͼ//www.scdqe.tw/lukelyx/archive/2019/10/10/434794.html逐水而居逐水而居Thu, 10 Oct 2019 03:52:00 GMT//www.scdqe.tw/lukelyx/archive/2019/10/10/434794.html//www.scdqe.tw/lukelyx/comments/434794.html//www.scdqe.tw/lukelyx/archive/2019/10/10/434794.html#Feedback0//www.scdqe.tw/lukelyx/comments/commentRss/434794.html//www.scdqe.tw/lukelyx/services/trackbacks/434794.html

逐水而居 2019-10-10 11:52 发表评论
]]>
LINUX配置DNS - 2017ϹƱ̳ͼ//www.scdqe.tw/paulwong/archive/2019/10/10/434793.htmlpaulwongpaulwongThu, 10 Oct 2019 02:55:00 GMT//www.scdqe.tw/paulwong/archive/2019/10/10/434793.html//www.scdqe.tw/paulwong/comments/434793.html//www.scdqe.tw/paulwong/archive/2019/10/10/434793.html#Feedback0//www.scdqe.tw/paulwong/comments/commentRss/434793.html//www.scdqe.tw/paulwong/services/trackbacks/434793.htmlvi /etc/resolv.conf

nameserver 8.8.8.8

paulwong 2019-10-10 10:55 发表评论
]]>
在SPRING INTEGRATION中手动开始和停止JMS LISTENER - 2017ϹƱ̳ͼ//www.scdqe.tw/paulwong/archive/2019/10/09/434781.htmlpaulwongpaulwongWed, 09 Oct 2019 09:16:00 GMT//www.scdqe.tw/paulwong/archive/2019/10/09/434781.html//www.scdqe.tw/paulwong/comments/434781.html//www.scdqe.tw/paulwong/archive/2019/10/09/434781.html#Feedback0//www.scdqe.tw/paulwong/comments/commentRss/434781.html//www.scdqe.tw/paulwong/services/trackbacks/434781.html
SPRING INTEGRATION是实现了EIP模式的一种框架,即使用CHANNEL和JMS-INBOUND-ADAPTER、JMS-OUTBOUND-ADAPTER,完全脱离了JmsTemplate的API?br />
如果需要实现这种场景:从BROKER取一条消息,处理消息,且处理途中不要再从BROKER再取消息,处理完后再取消息,再处理?br />
这样要求手动开始和停止JMS LISTENER,即手动开始和停止JMS-INBOUND-ADAPTER、JMS-OUTBOUND-ADAPTER?br />
@Bean
@InboundChannelAdapter(value = "loaderResponseChannel")
public MessageSource loaderResponseSource() throws Exception {
    return Jms
            .inboundAdapter(oracleConnectionFactory())
            .configureJmsTemplate(
                    t -> t.deliveryPersistent(true)
                            .jmsMessageConverter(jacksonJmsMessageConverter())
            ).destination(jmsInbound).get();
}

当使用@InboundChannelAdapter时,会自动注册一个SourcePollingChannelAdapter ,但这个名字比较长:configrationName.loaderResponseSource.inboundChannelAdapter?br />
呼叫这个实例的start()和stop()方法即可?br />
@Bean
public IntegrationFlow controlBusFlow() {
    return IntegrationFlows.from("controlBus")
              .controlBus()
              .get();
}

Message operation = MessageBuilder.withPayload("@configrationName.loaderResponseSource.inboundChannelAdapter.start()").build();
operationChannel.send(operation)

https://stackoverflow.com/questions/45632469/shutdown-spring-integration-with-jms-inboundadapter

https://docs.spring.io/spring-integration/docs/5.0.7.RELEASE/reference/html/system-management-chapter.html#control-bus

https://github.com/spring-projects/spring-integration-java-dsl/blob/master/src/test/java/org/springframework/integration/dsl/test/jms/JmsTests.java

https://stackoverflow.com/questions/50428552/how-to-stop-or-suspend-polling-after-batch-job-fail


paulwong 2019-10-09 17:16 发表评论
]]>
适合新手:从零开发一个IM服务端(基于Netty,有完整源码?/title><link>//www.scdqe.tw/jb2011/archive/2019/10/09/434779.html</link><dc:creator>Jack Jiang</dc:creator><author>Jack Jiang</author><pubDate>Wed, 09 Oct 2019 06:49:00 GMT</pubDate><guid>//www.scdqe.tw/jb2011/archive/2019/10/09/434779.html</guid><wfw:comment>//www.scdqe.tw/jb2011/comments/434779.html</wfw:comment><comments>//www.scdqe.tw/jb2011/archive/2019/10/09/434779.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>//www.scdqe.tw/jb2011/comments/commentRss/434779.html</wfw:commentRss><trackback:ping>//www.scdqe.tw/jb2011/services/trackbacks/434779.html</trackback:ping><description><![CDATA[     摘要: 0、引言站长提示:本文适合IM新手阅读,但最好有一定的网络编程经验,必竟实践性的代码上手就是网络编程。如果你对网络编程,以及IM的一些理论知识知之甚少,请务必首先阅读:《新手入门一篇就够:从零开发移动端IM》,该文为IM小白分类整理了详尽的理论资料,请按需补充相关知识。配套源码:本文写的比较浅显但不太易懂,建议结合代码一起来读,文章配套的完整源?nbsp;请从本文文末 “11、完整源...  <a href='//www.scdqe.tw/jb2011/archive/2019/10/09/434779.html'>阅读全文</a><img src ="//www.scdqe.tw/jb2011/aggbug/434779.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="//www.scdqe.tw/jb2011/" target="_blank">Jack Jiang</a> 2019-10-09 14:49 <a href="//www.scdqe.tw/jb2011/archive/2019/10/09/434779.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>windows redis - 2017ϹƱ̳ͼ//www.scdqe.tw/lhbjava/archive/2019/10/08/434765.html林的林的Tue, 08 Oct 2019 08:15:00 GMT//www.scdqe.tw/lhbjava/archive/2019/10/08/434765.html//www.scdqe.tw/lhbjava/comments/434765.html//www.scdqe.tw/lhbjava/archive/2019/10/08/434765.html#Feedback0//www.scdqe.tw/lhbjava/comments/commentRss/434765.html//www.scdqe.tw/lhbjava/services/trackbacks/434765.html阅读全文

林的 2019-10-08 16:15 发表评论
]]>
在清理邮箱时发现 - 2017ϹƱ̳ͼ//www.scdqe.tw/muoutang/archive/2019/10/08/434764.html木偶?/dc:creator>木偶?/author>Tue, 08 Oct 2019 07:38:00 GMT//www.scdqe.tw/muoutang/archive/2019/10/08/434764.html//www.scdqe.tw/muoutang/comments/434764.html//www.scdqe.tw/muoutang/archive/2019/10/08/434764.html#Feedback0//www.scdqe.tw/muoutang/comments/commentRss/434764.html//www.scdqe.tw/muoutang/services/trackbacks/434764.html

]]>
yarn - 2017ϹƱ̳ͼ//www.scdqe.tw/lhbjava/archive/2019/10/08/434761.html林的林的Tue, 08 Oct 2019 03:35:00 GMT//www.scdqe.tw/lhbjava/archive/2019/10/08/434761.html//www.scdqe.tw/lhbjava/comments/434761.html//www.scdqe.tw/lhbjava/archive/2019/10/08/434761.html#Feedback0//www.scdqe.tw/lhbjava/comments/commentRss/434761.html//www.scdqe.tw/lhbjava/services/trackbacks/434761.htmlyarn的简介:

Yarn是facebook发布的一款取代npm的包管理工具?br />

yarn的安?

下载node.js,使用npm安装
npm install -g yarn
查看版本:yarn --version
安装node.js,下载yarn的安装程?
提供一?msi文件,在运行时将引导您在Windows上安装Yarn
Yarn 淘宝源安装,分别复制粘贴以下代码行到黑窗口运行即?/div>
yarn config set registry https://registry.npm.taobao.org -g
yarn config set sass_binary_site //cdn.npm.taobao.org/dist/node-sass -g

yarn的常用命令:
安装yarn
npm install -g yarn
安装成功后,查看版本号:
yarn --version
创建文件?yarn
md yarn
进入yarn文件?/div>
cd yarn
初始化项?/div>
yarn init // 同npm init,执行输入信息后,会生成package.json文件
yarn的配置项?/div>
yarn config list // 显示所有配置项
yarn config get <key> //显示某配置项
yarn config delete <key> //删除某配置项
yarn config set <key> <value> [-g|--global] //设置配置?/div>
安装包:
yarn install //安装package.json里所有包,并将包及它的所有依赖项保存进yarn.lock
yarn install --flat //安装一个包的单一版本
yarn install --force //强制重新下载所有包
yarn install --production //只安装dependencies里的?/div>
yarn install --no-lockfile //不读取或生成yarn.lock
yarn install --pure-lockfile //不生成yarn.lock
添加包(会更新package.json和yarn.lock):
yarn add [package] // 在当前的项目中添加一个依赖包,会自动更新到package.json和yarn.lock文件?/div>
yarn add [package]@[version] // 安装指定版本,这里指的是主要版本,如果需要精确到小版本,使用-E参数
yarn add [package]@[tag] // 安装某个tag(比如beta,next或者latest?/div>
//不指定依赖类型默认安装到dependencies里,你也可以指定依赖类型?/div>
yarn add --dev/-D // 加到 devDependencies
yarn add --peer/-P // 加到 peerDependencies
yarn add --optional/-O // 加到 optionalDependencies
//默认安装包的主要版本里的最新版本,下面两个命令可以指定版本?/div>
yarn add --exact/-E // 安装包的精确版本。例如yarn add foo@1.2.3会接?.9.1版,但是yarn add foo@1.2.3 --exact只会接受1.2.3?/div>
yarn add --tilde/-T // 安装包的次要版本里的最新版。例如yarn add foo@1.2.3 --tilde会接?.2.9,但不接?.3.0
发布?/div>
yarn publish
移除一个包
yarn remove <packageName>:移除一个包,会自动更新package.json和yarn.lock
更新一个依?/div>
yarn upgrade 用于更新包到基于规范范围的最新版?/div>
运行脚本
yarn run 用来执行?package.json ?scripts 属性下定义的脚?/div>
显示某个包的信息
yarn info <packageName> 可以用来查看某个模块的最新版本信?/div>
缓存
yarn cache
yarn cache list # 列出已缓存的每个?/div>
yarn cache dir # 返回 全局缓存位置
yarn cache clean # 清除缓存
————————————————
版权声明:本文为CSDN博主「yw00yw」的原创文章,遵?CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明?/div>
原文链接?a >https://blog.csdn.net/yw00yw/article/details/81354533


林的 2019-10-08 11:35 发表评论
]]>极简的switch控件 - 2017ϹƱ̳ͼ//www.scdqe.tw/emu/archive/2019/10/02/434717.htmlemuemuTue, 01 Oct 2019 22:45:00 GMT//www.scdqe.tw/emu/archive/2019/10/02/434717.html//www.scdqe.tw/emu/comments/434717.html//www.scdqe.tw/emu/archive/2019/10/02/434717.html#Feedback0//www.scdqe.tw/emu/comments/commentRss/434717.html//www.scdqe.tw/emu/services/trackbacks/434717.html需要在html页面上用到一个switch控件,html5没有现成的,网上流传的版本都有点复杂,代码量偏大甚至有独立的css和js片段的依赖,用起来不像html控件那么简单,有一些动画之类的需求镀金也不是太必要,随手写个极简版的用着?/span>
<pre onclick="this.c=!this.c;style.backgroundColor=c?'green':'';innerHTML=c?'on   ○':'○  off'"
style
="border-radius:0.7em;border:1px solid black;padding:0 0.4em;display:inline;float:right">○  off</pre>

用pre控件一是为了让字体等宽避免宽度的微小变化,二是可以方便的填空格进去调整宽度而不用填&nbsp;

打开关闭状态可以通过读取元素的c属性,当然也可以直接用标记相应属性的全局变量来代替,免去了再读取元素属性的麻烦:

<script>
var switchState;    
</script>
<pre onclick="style.backgroundColor=(switchState=!switchState)?'green':'';innerHTML=switchState?'on   ○':'○  off'"
style
="border-radius:0.7em;border:1px solid black;padding:0 0.4em;display:inline;">○  off</pre>


emu 2019-10-02 06:45 发表评论
]]>
.net IdentityServer4 + Ws-Federation 身份认证之路 - 2017ϹƱ̳ͼ//www.scdqe.tw/crazycoding/archive/2019/09/30/434713.htmlYing-erYing-erMon, 30 Sep 2019 02:32:00 GMT//www.scdqe.tw/crazycoding/archive/2019/09/30/434713.html//www.scdqe.tw/crazycoding/comments/434713.html//www.scdqe.tw/crazycoding/archive/2019/09/30/434713.html#Feedback0//www.scdqe.tw/crazycoding/comments/commentRss/434713.html//www.scdqe.tw/crazycoding/services/trackbacks/434713.html身份验证策略
?span style="font-family: "Comic Sans MS";">Form 提供一个输入凭据的自定义窗?Web ?,然后在应用程序中验证他们的身份。(用户凭据标记存储?Cookie 中)
?span style="font-family: "Comic Sans MS";">Windows IIS根据应用程序的设置执行身份验证(默认?/div>
?span style="font-family: "Comic Sans MS";">Passport 通过 Microsoft 的集中身份验证服务执行验证,为成员站点(Client)提供单独登录和核心配置文件服务
?span style="font-family: "Comic Sans MS";">None 不执行身份验?br />

认证授权协议

・OAuth2 (https://oauth.net/2/)
・OIDC(New) (Identity, Authentication) + OAuth 2.0 = OpenID Connect ⇒ OIDC (https://openid.net/specs/openid-connect-core-1_0.html)
・SAML2(https://www.oasis-open.org/committees/download.php/11511/sstc-saml-tech-overview-2.0-draft-03.pdf)
・WS-Federation(//docs.oasis-open.org/wsfed/federation/v1.2/os/ws-federation-1.2-spec-os.html)

认证与授?/strong>

(Authentication VS. Authorization?/span>
⇒OAuth2 VS. OIDC、SAML2、WS-Federation
★AuthN → Authentication:What you can do
★AuthZ → Authorization:Who are you

IdentityServer介绍

(https://github.com/IdentityServer?/div>
Identity Server4
・free
・open source
・OpenID Connect and OAuth 2.0 
・ASP.NET Core.
・ASP.NET Framework 4.6.x
IdentityServer4.WsFederation
・free
・open source
・SAML 1.1/2.0 token
・ASP.NET Framework
・ASP.NET Core

借助IdentityServer4搭建.net认证服务?nbsp;

?net core 2.1 (Server)
?net framework 4.x(Client)
?net core 2.1(Client)
・IdentityServer4
・Ws-Federation(为了使.net framework 4.x的客户端也能通过验证?/span>
・Owin
・IIS 10

Server = .net core2.1 + IdentityServer4 + WsFederation
Client = .net Framework 4.5.x + Owin + WsFederation

Server

1. .net core项目作成(Web Application ASP.NET Core2.1?br />
2. 
launchSettings.json
 1 {
 2   "iisSettings": {
 3     "windowsAuthentication": false,
 4     "anonymousAuthentication": true,
 5     "iisExpress": {
 6       "applicationUrl": "//localhost:5000/",
 7       "sslPort": 0
 8     }
 9   },
10   "profiles": {
11     "IIS Express": {
12       "commandName": "IISExpress",
13       "environmentVariables": {
14         "ASPNETCORE_ENVIRONMENT": "Development"
15       }
16     },
17     "IdentityServer4.WsFederation": {
18       "commandName": "Project",
19       "launchUrl": "//localhost:5000",
20       "environmentVariables": {
21         "ASPNETCORE_ENVIRONMENT": "Development"
22       }
23     }
24   }
25 }
3.NuGet install IdentityServer4 (version 2.0.4)
4.System.IdentityModel、System.IdentityModel.Service参照
5.Add Config.cs
6.Copy DemoのQuickstart、Views、WsFederation、idsrvtest.pfx floder into Project
7.Startup.csの変?/div>
8.起動
(未完待续)





Ying-er 2019-09-30 10:32 发表评论
]]>我的公众号之路已开启「Java爱好者社区」原创文章再等你?/title><link>//www.scdqe.tw/ldwblog/archive/2019/09/30/434712.html</link><dc:creator>David1228</dc:creator><author>David1228</author><pubDate>Mon, 30 Sep 2019 01:49:00 GMT</pubDate><guid>//www.scdqe.tw/ldwblog/archive/2019/09/30/434712.html</guid><wfw:comment>//www.scdqe.tw/ldwblog/comments/434712.html</wfw:comment><comments>//www.scdqe.tw/ldwblog/archive/2019/09/30/434712.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>//www.scdqe.tw/ldwblog/comments/commentRss/434712.html</wfw:commentRss><trackback:ping>//www.scdqe.tw/ldwblog/services/trackbacks/434712.html</trackback:ping><description><![CDATA[blogjava网站与博客园合并了,对blogjava还是有感情的?br />并且blogjava网站发布的文章是在博客园首页看不到的?br />blogjava网站首页能看到,你可以点击标题进入可以看到图片二维码信息?br /><br /><strong style="color: red; font-size: 14pt;">Java爱好者社?/strong><br />公众号内容简介:<br /><p><span style="background-color: yellow; color: red;">专注于分享Java后端相关技术、老司机实战干货,不限于JVM、并发、设计模式、性能优化、分布式&微服务、云原生、大数据相关主题?/span><br style="color: red;" /><span style="background-color: yellow; color: red;">希望关注的你停下脚步,定有所收获?/span><br style="color: red;" /><br />以前的个人博客内容不好迁移,所以我打算根据自己的多年经验,不断整理输出有价值的内容?br />目前公众号内容有关于<span style="background-color: yellow; color: red;">SpringCloud(微服务框架)、Skywalking(APM监控调用链)、JVM(GC分析、内存泄漏分析)</span>相关原创实战文章已出炉?br /><br />最近刚开始已经有不少小伙伴关注了,期待能有幸搜索到本博客的同学,可以扫码关注一下,不胜感激?br />大家有任何技术、职场、面试上的问题都可以与我交流?br /><br /><span style="background-color: yellow;"><strong class="bld">方式一?/strong></span><span style="color: red; background-color: yellow;"><strong class="bld">扫码以下公众号二维码?/strong></span><br /><img src="//www.scdqe.tw/images/blogjava_net/ldwblog/Java爱好者社区二维码.png" border="0" alt="" /><br /><br />方式二:<span style="color: red;">在微信上直接搜索?nbsp;</span><span style="color: red; background-color: yellow;">Java爱好者社?nbsp;</span><br /><br /><strong style="color: red; background-color: yellow;">Java爱好者社区微信群?/strong><br style="background-color: yellow;" /><img src="//www.scdqe.tw/images/blogjava_net/ldwblog/1569807716.png" border="0" alt="" /><br />目前还有坑位,大家扫码加入吧~。如果无法加入可以加我的个人微信号,拉你进群?br /><br />个人微信号:ldw1228<br /><br />感谢各位小伙伴的支持,后续会在该公众号上输出大量的有价值的实战干货 ,期待与你一同进步与成长?br /><br /></p><img src ="//www.scdqe.tw/ldwblog/aggbug/434712.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="//www.scdqe.tw/ldwblog/" target="_blank">David1228</a> 2019-09-30 09:49 <a href="//www.scdqe.tw/ldwblog/archive/2019/09/30/434712.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>IM开发基础知识补课(?:数据库用NoSQL还是SQL?读这篇就够了! - 2017ϹƱ̳ͼ//www.scdqe.tw/jb2011/archive/2019/09/26/434701.htmlJack JiangJack JiangThu, 26 Sep 2019 06:16:00 GMT//www.scdqe.tw/jb2011/archive/2019/09/26/434701.html//www.scdqe.tw/jb2011/comments/434701.html//www.scdqe.tw/jb2011/archive/2019/09/26/434701.html#Feedback0//www.scdqe.tw/jb2011/comments/commentRss/434701.html//www.scdqe.tw/jb2011/services/trackbacks/434701.html阅读全文

Jack Jiang 2019-09-26 14:16 发表评论
]]>
mvn 打包上传docker的命?/title><link>//www.scdqe.tw/lhbjava/archive/2019/09/25/434699.html</link><dc:creator>林的</dc:creator><author>林的</author><pubDate>Wed, 25 Sep 2019 03:06:00 GMT</pubDate><guid>//www.scdqe.tw/lhbjava/archive/2019/09/25/434699.html</guid><wfw:comment>//www.scdqe.tw/lhbjava/comments/434699.html</wfw:comment><comments>//www.scdqe.tw/lhbjava/archive/2019/09/25/434699.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>//www.scdqe.tw/lhbjava/comments/commentRss/434699.html</wfw:commentRss><trackback:ping>//www.scdqe.tw/lhbjava/services/trackbacks/434699.html</trackback:ping><description><![CDATA[     摘要:   <a href='//www.scdqe.tw/lhbjava/archive/2019/09/25/434699.html'>阅读全文</a><img src ="//www.scdqe.tw/lhbjava/aggbug/434699.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="//www.scdqe.tw/lhbjava/" target="_blank">林的</a> 2019-09-25 11:06 <a href="//www.scdqe.tw/lhbjava/archive/2019/09/25/434699.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>CountDownLatch、CyclicBarrier和Semaphore - 2017ϹƱ̳ͼ//www.scdqe.tw/paulwong/archive/2019/09/24/434696.htmlpaulwongpaulwongTue, 24 Sep 2019 02:18:00 GMT//www.scdqe.tw/paulwong/archive/2019/09/24/434696.html//www.scdqe.tw/paulwong/comments/434696.html//www.scdqe.tw/paulwong/archive/2019/09/24/434696.html#Feedback0//www.scdqe.tw/paulwong/comments/commentRss/434696.html//www.scdqe.tw/paulwong/services/trackbacks/434696.htmlCountDownLatch、CyclicBarrier和Semaphore这三个并发辅助类,可以在线程中呼叫,使得线程暂停等,但各有不同?br />
  • CountDownLatch
1、初始化,并传入计数?br /> 2、向不同的线程传入CountDownLatch实例
3、如果在某一线程中呼叫await(),则此线程被挂起,直到计数器?,才往下执?br /> 4、如果在某一线程中呼叫countDown(),计数器?
5、最终如果计数器值为0时,则CountDownLatch实例不再起作用了,即为一次性的

  • CyclicBarrier
1、初始化,并传入计数器值,也可传入一个Runnable类,会在计数器为0时,被执?br /> 2、向不同的线程传入CyclicBarrier实例
3、如果在某一线程中呼叫await(),则此线程被挂起,直到计数器?,才往下执?br /> 4、其他线程呼叫await(),则此线程被挂起,直到计数器?,才往下执?br /> 5、最终如果计数器值为0时,则CyclicBarrier实例会将计数器值恢复,又可重用

  • Semaphore
1、初始化,并传入计数器?br /> 2、向不同的线程传入Semaphore实例
3、如果在某一线程中呼叫acquire(),则Semaphore实例会将计数器值减1,如果计数器值为-1,则将计数器值置?,此线程被挂起,直到计数器值大?时,才往下执?br /> 4、此线程需呼叫release(),使得计数器?1,以便其他线程在计数器值为0时不受阻


CountDownLatch 例子?br />
public class Test {
     public static void main(String[] args) {   
         final CountDownLatch latch = new CountDownLatch(2);
          
         new Thread(){
             public void run() {
                 try {
                     System.out.println("子线?+Thread.currentThread().getName()+"正在执行");
                    Thread.sleep(3000);
                    System.out.println("子线?+Thread.currentThread().getName()+"执行完毕");
                    latch.countDown();
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
             };
         }.start();
          
         new Thread(){
             public void run() {
                 try {
                     System.out.println("子线?+Thread.currentThread().getName()+"正在执行");
                     Thread.sleep(3000);
                     System.out.println("子线?+Thread.currentThread().getName()+"执行完毕");
                     latch.countDown();
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
             };
         }.start();
          
         try {
             System.out.println("等待2个子线程执行完毕");
            latch.await();
            System.out.println("2个子线程已经执行完毕");
            System.out.println("继续执行主线?);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
     }
}

结果?br />
线程Thread-0正在执行
线程Thread-1正在执行
等待2个子线程执行完毕
线程Thread-0执行完毕
线程Thread-1执行完毕
2个子线程已经执行完毕
继续执行主线?/div>

CyclicBarrier例子?br />
public class Test {
    public static void main(String[] args) {
        int N = 4;
        CyclicBarrier barrier  = new CyclicBarrier(N,new Runnable() {
            @Override
            public void run() {
                System.out.println("当前线程"+Thread.currentThread().getName());   
            }
        });
         
        for(int i=0;i<N;i++)
            new Writer(barrier).start();
    }
    static class Writer extends Thread{
        private CyclicBarrier cyclicBarrier;
        public Writer(CyclicBarrier cyclicBarrier) {
            this.cyclicBarrier = cyclicBarrier;
        }
 
        @Override
        public void run() {
            System.out.println("线程"+Thread.currentThread().getName()+"正在写入数据");
            try {
                Thread.sleep(5000);      //以睡眠来模拟写入数据操作
                System.out.println("线程"+Thread.currentThread().getName()+"写入数据完毕,等待其他线程写入完?);
                cyclicBarrier.await();
            } catch (InterruptedException e) {
                e.printStackTrace();
            }catch(BrokenBarrierException e){
                e.printStackTrace();
            }
            System.out.println("所有线程写入完毕,继续处理其他任务");
        }
    }
}

执行结果?br />
线程Thread-0正在写入数据
线程Thread-1正在写入数据
线程Thread-2正在写入数据
线程Thread-3正在写入数据
线程Thread-0写入数据完毕,等待其他线程写入完?br /> 线程Thread-1写入数据完毕,等待其他线程写入完?br /> 线程Thread-2写入数据完毕,等待其他线程写入完?br /> 线程Thread-3写入数据完毕,等待其他线程写入完?br /> 当前线程Thread-3
所有线程写入完毕,继续处理其他任务
所有线程写入完毕,继续处理其他任务
所有线程写入完毕,继续处理其他任务
所有线程写入完毕,继续处理其他任务


Semaphore例子?br />
public class Test {
    public static void main(String[] args) {
        int N = 8;            //工人?/span>
        Semaphore semaphore = new Semaphore(5); //机器数目
        for(int i=0;i<N;i++)
            new Worker(i,semaphore).start();
    }
     
    static class Worker extends Thread{
        private int num;
        private Semaphore semaphore;
        public Worker(int num,Semaphore semaphore){
            this.num = num;
            this.semaphore = semaphore;
        }
         
        @Override
        public void run() {
            try {
                semaphore.acquire();
                System.out.println("工人"+this.num+"占用一个机器在生产");
                Thread.sleep(2000);
                System.out.println("工人"+this.num+"释放出机?);
                semaphore.release();           
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}

执行结果?br />
工人0占用一个机器在生产
工人1占用一个机器在生产
工人2占用一个机器在生产
工人4占用一个机器在生产
工人5占用一个机器在生产
工人0释放出机?br /> 工人2释放出机?br /> 工人3占用一个机器在生产
工人7占用一个机器在生产
工人4释放出机?br /> 工人5释放出机?br /> 工人1释放出机?br /> 工人6占用一个机器在生产
工人3释放出机?br /> 工人7释放出机?br /> 工人6释放出机?/div>
https://www.cnblogs.com/dolphin0520/p/3920397.html

https://juejin.im/post/5aeec3ebf265da0ba76fa327

paulwong 2019-09-24 10:18 发表评论
]]>美团技术分享:深度解密美团的分布式ID生成算法 - 2017ϹƱ̳ͼ//www.scdqe.tw/jb2011/archive/2019/09/23/434692.htmlJack JiangJack JiangMon, 23 Sep 2019 08:25:00 GMT//www.scdqe.tw/jb2011/archive/2019/09/23/434692.html//www.scdqe.tw/jb2011/comments/434692.html//www.scdqe.tw/jb2011/archive/2019/09/23/434692.html#Feedback0//www.scdqe.tw/jb2011/comments/commentRss/434692.html//www.scdqe.tw/jb2011/services/trackbacks/434692.html阅读全文

2017ϹƱ̳ͼ 2019-09-23 16:25 发表评论
]]>