精华内容
下载资源
问答
  • protected void configure... /** * 自定义HeaderWriter,用以覆盖security默认的Header, * 使默认的"X-Frame-Options:DENY"禁止一切iframe调用 * 转化为"X-Frame-Options:SAMEORIGIN"允许同域下的if
    protected void configure(HttpSecurity http) throws Exception{
    		/**
    		 * 自定义HeaderWriter,用以覆盖security默认的Header,
    		 * 使默认的"X-Frame-Options:DENY"禁止一切iframe调用
    		 * 转化为"X-Frame-Options:SAMEORIGIN"允许同域下的iframe调用
    		 */
    		HeaderWriter headerWriter = new HeaderWriter() {
    			@Override
    			public void writeHeaders(HttpServletRequest request, HttpServletResponse response) {
    				response.setHeader("X-Frame-Options","SAMEORIGIN");
    			}
    		};
    		List<HeaderWriter> headerWriters = new ArrayList<HeaderWriter>();
    		headerWriters.add(headerWriter);
    		HeaderWriterFilter headerWriterFilter = new HeaderWriterFilter(headerWriters);
    		http.addFilter(headerWriterFilter);
    	}

    以上配置似乎对spring security的版本有一定要求:

    今天在一个就项目上使用了上面的配置,setHeader()并没有成功替换掉原有的header信息,而是起到了追加的作用,也就是效果等同与addHeader();

    后来对比了成功案例的配置,发现成功案例使用的是是4.1.1版本的jar包,而失败案例是3.2的,升级了版本后,setHeader()就成功起到替换效果了。

    展开全文
  • 我想通过bridge方式与宿主机通信与上网,配置好后,在ubuntu上上网是没问题,打开www.baidu.com很顺畅,可就是ping不通宿主机(宿主机可以ping linux),感觉不是我配置的问题,以前在winxp上没有遇到过这样的问题...

    我的win7本本上通过虚拟机安装了个ubuntu11的linux系统,我想通过bridge方式与宿主机通信与上网,配置好后,在ubuntu上上网是没问题,打开www.baidu.com很顺畅,可就是ping不通宿主机(宿主机可以ping linux),感觉不是我配置的问题,以前在winxp上都没有遇到过这样的问题,感觉1可能是vm的问题,2可能是win7的问题。

    首先,可能是防护墙的问题,于是把防护墙关掉,嗨,真的就好了,原来是WIN7防护墙阻止了,那阻止了什么呢,开下来不就行了,否则,以后每次使用都要关防护墙都不方便啊,

    最后排查后,发现是win7系统没有打开ICMPv4-in这个规则,怎么打开呢?

    1. 打开WIN7防护墙

    2. 选择高级设置

    3. 入站规则

    4. 找到配置文件类型为“公共”的“文件和打印共享(回显请求 – ICMPv4-In)”规则,启用规则,设置为允许

    5. 设置作用域

    6. 一切正常


    PS:win7的默认设置是不允许响应ping请求的,即在同一局域网互联的两台计算机A和B,系统分别为A:win7,B:winXP。这时,A可以ping通B,但是B不能ping通A。这正是win7的默认设置导致的。win7修改这种设置的具体步骤是:

    1.打开控制面板,点击“Windows防火墙”项;



    2.选择左侧的“高级设置”项;


    3.选择左侧的“入站规则”项;


    4. 找到配置文件类型为“公共”的“文件和打印共享(回显请求 – ICMPv4-In)”规则,选中它,并点击右边的启用规则;

    5.设置作用域。
    点击启用规则后,再单击它下面的属性,选择“作用域”选项卡,入下图所示;

    确保 本地IP地址 和 远程IP地址 都选择了 “任何IP地址”,点击确定。

    6.此后,使用任何同一局域网 或者 地址可达的远程的计算机,就可以ping通这个win7系统了。
     
     
    或者 sql200x  配置管理器--配置协议==开启 tcp/ip
    展开全文
  • 一切皆是文件:UNIX,Linux 操作系統的設計哲學

    万次阅读 多人点赞 2020-08-19 10:37:27
    PS:不要忘了,Linux 中一切都被抽象成文件,设备也是文件,可以进行读和写。 如果我们写的程序需要其他资源,比如打开一个文件进行读写,这也很简单,进行系统调用,让内核把文件打开,这个文件就会放到files的...

    Linux的进程、线程、文件描述符是什么

    说到进程,恐怕面试中最常见的问题就是线程和进程的关系了,那么先说一下答案:在 Linux 系统中,进程和线程几乎没有区别

    Linux 中的进程就是一个数据结构,看明白就可以理解文件描述符、重定向、管道命令的底层工作原理,最后我们从操作系统的角度看看为什么说线程和进程基本没有区别。

    一、进程是什么

    首先,抽象地来说,我们的计算机就是这个东西:

    这个大的矩形表示计算机的内存空间,其中的小矩形代表进程,左下角的圆形表示磁盘,右下角的图形表示一些输入输出设备,比如鼠标键盘显示器等等。另外,注意到内存空间被划分为了两块,上半部分表示用户空间,下半部分表示内核空间

    用户空间装着用户进程需要使用的资源,比如你在程序代码里开一个数组,这个数组肯定存在用户空间;内核空间存放内核进程需要加载的系统资源,这一些资源一般是不允许用户访问的。但是注意有的用户进程会共享一些内核空间的资源,比如一些动态链接库等等。

    我们用 C 语言写一个 hello 程序,编译后得到一个可执行文件,在命令行运行就可以打印出一句 hello world,然后程序退出。在操作系统层面,就是新建了一个进程,这个进程将我们编译出来的可执行文件读入内存空间,然后执行,最后退出。

    你编译好的那个可执行程序只是一个文件,不是进程,可执行文件必须要载入内存,包装成一个进程才能真正跑起来。进程是要依靠操作系统创建的,每个进程都有它的固有属性,比如进程号(PID)、进程状态、打开的文件等等,进程创建好之后,读入你的程序,你的程序才被系统执行。

    那么,操作系统是如何创建进程的呢?对于操作系统,进程就是一个数据结构,我们直接来看 Linux 的源码:

    struct task_struct {
        // 进程状态
        long              state;
        // 虚拟内存结构体
        struct mm_struct  *mm;
        // 进程号
        pid_t             pid;
        // 指向父进程的指针
        struct task_struct __rcu  *parent;
        // 子进程列表
        struct list_head        children;
        // 存放文件系统信息的指针
        struct fs_struct        *fs;
        // 一个数组,包含该进程打开的文件指针
        struct files_struct     *files;
    };

    task_struct就是 Linux 内核对于一个进程的描述,也可以称为「进程描述符」。源码比较复杂,我这里就截取了一小部分比较常见的。

    其中比较有意思的是mm指针和files指针。mm指向的是进程的虚拟内存,也就是载入资源和可执行文件的地方;files指针指向一个数组,这个数组里装着所有该进程打开的文件的指针。

    二、文件描述符是什么

    先说files,它是一个文件指针数组。一般来说,一个进程会从files[0]读取输入,将输出写入files[1],将错误信息写入files[2]

    举个例子,以我们的角度 C 语言的printf函数是向命令行打印字符,但是从进程的角度来看,就是向files[1]写入数据;同理,scanf函数就是进程试图从files[0]这个文件中读取数据。

    每个进程被创建时,files的前三位被填入默认值,分别指向标准输入流、标准输出流、标准错误流。我们常说的「文件描述符」就是指这个文件指针数组的索引,所以程序的文件描述符默认情况下 0 是输入,1 是输出,2 是错误。

    我们可以重新画一幅图:

    对于一般的计算机,输入流是键盘,输出流是显示器,错误流也是显示器,所以现在这个进程和内核连了三根线。因为硬件都是由内核管理的,我们的进程需要通过「系统调用」让内核进程访问硬件资源。

    PS:不要忘了,Linux 中一切都被抽象成文件,设备也是文件,可以进行读和写。

    如果我们写的程序需要其他资源,比如打开一个文件进行读写,这也很简单,进行系统调用,让内核把文件打开,这个文件就会被放到files的第 4 个位置:

    明白了这个原理,输入重定向就很好理解了,程序想读取数据的时候就会去files[0]读取,所以我们只要把files[0]指向一个文件,那么程序就会从这个文件中读取数据,而不是从键盘:

    $ command < file.txt

    同理,输出重定向就是把files[1]指向一个文件,那么程序的输出就不会写入到显示器,而是写入到这个文件中:

    $ command > file.txt

    错误重定向也是一样的,就不再赘述。

    管道符其实也是异曲同工,把一个进程的输出流和另一个进程的输入流接起一条「管道」,数据就在其中传递,不得不说这种设计思想真的很优美:

    $ cmd1 | cmd2 | cmd3

    到这里,你可能也看出「Linux 中一切皆文件」设计思路的高明了,不管是设备、另一个进程、socket 套接字还是真正的文件,全部都可以读写,统一装进一个简单的files数组,进程通过简单的文件描述符访问相应资源,具体细节交于操作系统,有效解耦,优美高效。

    三、线程是什么

    首先要明确的是,多进程和多线程都是并发,都可以提高处理器的利用效率,所以现在的关键是,多线程和多进程有啥区别。

    为什么说 Linux 中线程和进程基本没有区别呢,因为从 Linux 内核的角度来看,并没有把线程和进程区别对待。

    我们知道系统调用fork()可以新建一个子进程,函数pthread()可以新建一个线程。但无论线程还是进程,都是用task_struct结构表示的,唯一的区别就是共享的数据区域不同

    换句话说,线程看起来跟进程没有区别,只是线程的某些数据区域和其父进程是共享的,而子进程是拷贝副本,而不是共享:

    就比如说,mm结构和files结构在线程中都是共享的:

    所以说,我们的多线程程序要利用锁机制,避免多个线程同时往同一区域写入数据,否则可能造成数据错乱。

    那么你可能问,既然进程和线程差不多,而且多进程数据不共享,即不存在数据错乱的问题,为什么多线程的使用比多进程普遍得多呢

    因为现实中数据共享的并发更普遍呀,比如十个人同时从一个账户取十元,我们希望的是这个共享账户的余额正确减少一百元,而不是希望每人获得一个账户的拷贝,每个拷贝账户减少十元。

    当然,必须要说明的是,只有 Linux 系统将线程看做共享数据的进程,不对其做特殊看待,其他的很多操作系统是对线程和进程区别对待的,线程有其特有的数据结构,我个人认为不如 Linux 的这种设计简洁,增加了系统的复杂度。

    在 Linux 中新建线程和进程的效率都是很高的,对于新建进程时内存区域拷贝的问题,Linux 采用了 copy-on-write 的策略优化,也就是并不真正复制父进程的内存空间,而是等到需要写操作时才去复制。所以 Linux 中新建进程和新建线程都是很迅速的

    Ref: https://github.com/labuladong/fucking-algorithm/blob/master/%E6%8A%80%E6%9C%AF/linux%E8%BF%9B%E7%A8%8B.md


    Kotlin开发者社区

    专注分享 Java、 Kotlin、Spring/Spring Boot、MySQL、redis、neo4j、NoSQL、Android、JavaScript、React、Node、函数式编程、编程思想、"高可用,高性能,高实时"大型分布式系统架构设计主题。

    High availability, high performance, high real-time large-scale distributed system architecture design

    分布式框架:Zookeeper、分布式中间件框架等
    分布式存储:GridFS、FastDFS、TFS、MemCache、redis等
    分布式数据库:Cobar、tddl、Amoeba、Mycat
    云计算、大数据、AI算法
    虚拟化、云原生技术
    分布式计算框架:MapReduce、Hadoop、Storm、Flink等
    分布式通信机制:Dubbo、RPC调用、共享远程数据、消息队列等
    消息队列MQ:Kafka、MetaQ,RocketMQ
    怎样打造高可用系统:基于硬件、软件中间件、系统架构等一些典型方案的实现:HAProxy、基于Corosync+Pacemaker的高可用集群套件中间件系统
    Mycat架构分布式演进
    大数据Join背后的难题:数据、网络、内存和计算能力的矛盾和调和
    Java分布式系统中的高性能难题:AIO,NIO,Netty还是自己开发框架?
    高性能事件派发机制:线程池模型、Disruptor模型等等。。。

    合抱之木,生于毫末;九层之台,起于垒土;千里之行,始于足下。不积跬步,无以至千里;不积小流,无以成江河。

    Kotlin 简介

    Kotlin是一门非研究性的语言,它是一门非常务实的工业级编程语言,它的使命就是帮助程序员们解决实际工程实践中的问题。使用Kotlin 让 Java程序员们的生活变得更好,Java中的那些空指针错误,浪费时间的冗长的样板代码,啰嗦的语法限制等等,在Kotlin中统统消失。Kotlin 简单务实,语法简洁而强大,安全且表达力强,极富生产力。

    Java诞生于1995年,至今已有23年历史。当前最新版本是 Java 9。在 JVM 生态不断发展繁荣的过程中,也诞生了Scala、Groovy、Clojure 等兄弟语言。

    Kotlin 也正是 JVM 家族中的优秀一员。Kotlin是一种现代语言(版本1.0于2016年2月发布)。它最初的目的是像Scala那样,优化Java语言的缺陷,提供更加简单实用的编程语言特性,并且解决了性能上的问题,比如编译时间。 JetBrains在这些方面做得非常出色。

    Kotlin语言的特性

    用 Java 开发多年以后,能够尝试一些新的东西真是太棒了。如果您是 Java 开发人员,使用 Kotlin 将会非常自然流畅。如果你是一个Swift开发者,你将会感到似曾相识,比如可空性(Nullability)。 Kotlin语言的特性有:

    1.简洁

    大幅减少样板代码量。

    2.与Java的100%互操作性

    Kotlin可以直接与Java类交互,反之亦然。这个特性使得我们可以直接重用我们的代码库,并将其迁移到 Kotlin中。由于Java的互操作性几乎无处不在。我们可以直接访问平台API以及现有的代码库,同时仍然享受和使用 Kotlin 的所有强大的现代语言功能。

    3.扩展函数

    Kotlin 类似于 C# 和 Gosu, 它提供了为现有类提供新功能扩展的能力,而不必从该类继承或使用任何类型的设计模式 (如装饰器模式)。

    4.函数式编程

    Kotlin 语言一等支持函数式编程,就像Scala一样。具备高阶函数、Lambda 表达式等函数式基本特性。

    5.默认和命名参数

    在Kotlin中,您可以为函数中的参数设置一个默认值,并给每个参数一个名称。这有助于编写易读的代码。

    6.强大的开发工具支持

    而由于是JetBrains出品,我们拥有很棒的IDE支持。虽然Java到Kotlin的自动转换并不是100% OK 的,但它确实是一个非常好的工具。使用 IDEA 的工具转换Java代码为 Kotlin 代码时,可以轻松地重用60%-70%的结果代码,而且修改成本很小。

    Kotlin 除了简洁强大的语法特性外,还有实用性非常强的API以及围绕它构建的生态系统。例如:集合类 API、IO 扩展类、反射API 等。同时 Kotlin 社区也提供了丰富的文档和大量的学习资料,还有在线REPL。

    A modern programming language that makes developers happier. Open source forever

    图来自《Kotlin从入门到进阶实战》 (陈光剑,清华大学出版社)
    图来自《Kotlin从入门到进阶实战》 (陈光剑,清华大学出版社)

    https://kotlinlang.org/

    展开全文
  • 这个世界不允许我们内向

    千次阅读 2020-09-26 23:53:05
    我本不善言辞 却忙于人际交往 我本喜欢独处 却忙于奔波劳碌 而所做的一切 是为了得到 那能解万千惆怅的碎银几两 原来这个世界不允许我们内向

    我本不善言辞
    却忙于人际交往
    我本喜欢独处
    却忙于奔波劳碌
    而所做的一切
    都是为了得到
    那能解万千惆怅的碎银几两
    原来这个世界不允许我们内向
    在这里插入图片描述

    展开全文
  • 关于 Spring AOP (AspectJ) 你该知晓的一切

    万次阅读 多人点赞 2017-02-21 08:00:47
    【版权申明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权) ... 出自【zejian的博客】 关联文章: ...关于 Spring AOP (AspectJ) 你该知晓的一切本篇是年后第一篇博文,由于博主用了不少
  • 天下所有的事,是为了利益,是按利益逻辑规律在运行,发生的一切事情可以用利益逻辑来解释。 为了利益合作结盟,为了利益竞争对亢,为了利益发动战争,为了利益两派竞选,为了利益屠裁统治,为了利益效仿陈胜...
  • SQL 编程思想:一切皆关系

    万次阅读 多人点赞 2020-03-01 21:52:02
    关系模型定义了单一的数据结构:关系,也就是二维表。SQL 是一种面向集合的编程语言,它操作的对象是集合,操作的结果也是集合。在 SQL 中,一切皆关系。
  • 服务可由其他应用组件启动(如Activity),服务一旦启动将在后台一直运行,即使启动服务的组件(Activity)已销毁了。 此外,组件可以绑定到服务,以与之进行交互,甚至是执行进程间通信 (IPC)。 例如,服务可以...
  • 允许 dllimport 静态数据成员

    万次阅读 2014-10-07 17:28:52
    允许 dllimport 静态数据成员 View Code 当要使用一个类的时候必须要有其定义,有2种方式: 1、引用其头文件,即#include "xxx.h"。这是传统的方式。 2、使用导出类。 什么是‘导出类’,很...
  • 关于Spring IOC (DI-依赖注入)你需要知道的一切

    万次阅读 多人点赞 2017-01-19 16:46:27
    【版权申明】未经博主同意,不允许转载!(请尊重原创,博主保留追究权) http://blog.csdn.net/javazejian/article/details/54561302 出自【zejian的博客】 《Spring入门经典》这本无论对于初学者或者有经验的...
  • Android Context 上下文 你必须知道的一切

    万次阅读 多人点赞 2015-01-05 09:21:59
    数字3:在receiver为null时允许,在4.2或以上的版本中,用于获取黏性广播的当前值。(可以无视) 注:ContentProvider、BroadcastReceiver之所以在上述表格中,是因为在其内部方法中都有一个context用于使用。 好了...
  • Padavan启用ipv6并允许公网访问内网

    千次阅读 2020-12-27 15:13:33
    家里用的是padavan的路由器,取得了SSH,光猫也改成桥接了,采用的是联通家庭宽带FTTH,一切准备就绪,开始淦~! 1、路由器配置好拨号后,配置直接见下图吧,就不重复了。 目前外网采用的是有状态DHCPv6获取,亲...
  • WampServer3.0.6配置允许外网访问

    千次阅读 2018-07-23 14:53:43
    安装并配置好WampServer 3.0.6之后,在本机上使用http://localhost或者http://127.0.0.1访问一切OK,但是使用局域网IP访问不正常,出现如下提示: 1、更改httpd.conf中的244行附近的 &lt;Directory /&gt;...
  • UNIX一切皆文件的思想正确吗

    千次阅读 2013-10-04 09:17:50
    在古代,人们对树情有独钟,最终包括组织架构,包括分类变成了树,读到了后面的章节,我才发现,原来树型模型并不是一切的本质,它是在公元前10000左右的美索不达米亚的新月地带人为产生的,即农业革命导致了人们...
  • Android N开发 你需要知道的一切

    万次阅读 2016-05-06 13:58:14
    Android N开发,你需要知道的一切......
  • MyBatis 参数允许为空的异常解决方案

    千次阅读 2016-06-21 09:17:53
    MyBatis 参数允许为空的异常解决方案······
  • 允许跨域资源共享(CORS)携带 Cookie

    千次阅读 2018-04-08 17:08:14
    转载自:https://my.oschina.net/tridays/blog/758994摘要: `Access-Control-Allow-Credentials` 响应头会使浏览器允许在 Ajax 访问时携带 Cookie,但我们仍然需要对 XMLHttpRequest 设置其 `withCredentials` 参数...
  • 慢慢来,一切都来得及 2012-01-16 15:02:22  1、人人怕来不及 上周我的情绪一直很低落,除了情绪低落还伴随着持续地焦虑,因为我感觉到很多事情来不及去做,焦虑自己工作上的项目大半个月没有进展,焦虑...
  • 尝试安装Microsoft签名的ClickOnce应用程序时,会显示一条错误消息“您的管理员已阻止此应用程序,因为它可能会对您的计算机造成安全风险”和“您的安全设置不允许安装此应用程序你的电脑”。 作为设置所述策略的...
  • 允许的的ip:192.168.1.123, 192.168.1.124, 192.168.1.100,其他ip禁止访问。 切换到root用户 1、在tcp协议中,禁止所有的ip访问本机的22端口。 iptables -I INPUT -p tcp --dport 22 -j DROP 2、允许192.168...
  • 课间休息提供水果、饼干、茶、咖啡提供运动场所 穿随便的衣服 男女搭配亲切...不论在哪里,能够给人们创造价值。来自google:可以带宠物上班,有按摩师来给大家按摩,有按摩床能让员工累了时小憩一下的Beanbag,既可
  • iptables 必须先拒绝所有,在允许

    万次阅读 2016-09-20 11:44:21
    允许,在拒绝 iptables -I INPUT -s 115.236.6.6 -p tcp --dport 22 -j ACCEPT iptables -I INPUT -p tcp --dport 22 -j DROP # service iptables save 3.重启防火墙 #service iptables restart /**先...
  • 在工作组模式中一切正常,加入域后也提示欢迎加入域 ,可重启后输入域用户名和密码却提示用户名和密码出错或你的本地策略不允许你采用交互式登录(域用户名和密码是正确的);并且改用此WIN2KPRO客户机的系统管理...
  • 在SAP 中如何允许输入负数

    千次阅读 2011-11-24 15:42:09
    首先要将此负数记录删除,如果一切如当初所想,应该SM30 应恢复正常,可以正常维护表。真实最终也确实如此。 但中间有个小插曲,由于此Table 不仅仅有Table ,还有一个同名的View ,结果在使用se16时,系统不允许...
  • 背景:在windows server服务器中,部署了一个应用程序,如http协议的应用程序时,当外网通过http协议访问网页时,就需要获得服务器的允许入站,网页内容才可以正常显示在访问者的浏览器中,否则,就无法正常显示网页...
  • 为什么很多公司不允许使用C++ STL?

    千次阅读 2018-04-03 17:04:06
    在这种系统中可能连像样的C++编译器没有,STL更是无从用起操作系统内核。这个环境中往往缺乏必要的C++ Runtime支持,例如I/O、RTTI(RTTI(Run-Time Type Identification),通过运行时类型信息程序能够使用基类的...
  • SQL Server 允许远程连接的解决方法

    千次阅读 2014-07-02 10:54:20
    完成上述的三大步骤,并确认每一步操作正确后,用户的SQL服务器即可支持远程链接,一切万事ok了。 (注意:完成第二步骤的时候,必须先重启sql服务才可以)(net stop mssqlserver net start mssqlserver)。 ...
  • 阻止一切到 Facebook 的访问连接。首先你使用 host 或者 whois 命令来获取 Facebook 的 IP 地址。 host -t a www.facebook.com www.facebook.com is an alias for star.c10r.facebook.com. star.c10r.facebook....
  • 关于创建Android Library所需要知道的一切Android 库(Library)在结构上与 Android 应用模块相同。应用模块所可以包含的东西,在库中都允许存在,包括代码文件、资源文件和manifest文件等。应用模块编译后生成的是...
  • SQL Server 2008 允许远程链接 解决方法

    万次阅读 2011-10-12 23:20:53
    用户在使用SQL Server 2008远程链接时,可能会弹出如下对话框: ...完成上述的三大步骤,并确认每一步操作正确后,重新启动计算机后,用户的SQL服务器即可支持远程链接.一切万事ok了。    

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 277,099
精华内容 110,839
关键字:

一切都是被允许的