profile
viewpoint
Josh Long joshlong the Spring team at Pivotal (http://spring.io) San Francisco, CA http://www.joshlong.com Josh (@starbuxman) is the Spring Developer Advocate at Pivotal, an open-source hacker, book/video author and speaker

AxonFramework/AxonFramework 1940

Framework for Evolutionary Event-Driven Microservices on the JVM

AxonFramework/AxonBank 132

Simple virtual bank application to showcase features of Axon Framework

joshlong/a-walking-tour-of-all-of-springdom 56

a project containing all the code from my 3 hour Spring workshop introducing ... well, almost everything!

AxonFramework/ReferenceGuide 29

The Reference Guide of Axon Framework

AxonFramework/IdeaPlugin 17

An IntelliJ IDEA plugin for Axon Framework

jexp/sdn-twitter-boot 11

Spring Boot Application with Spring Data Neo4j REST, SD-REST and Spring Social for Twitter import

push eventbootiful-podcast/bootiful-podcast.github.io

vcap

commit sha 83bef067bb074bbb0a2d331991347e05e70a2fdc

adding .git @ 2020-02-27T04:13:15.455323Z

view details

vcap

commit sha 18ce0b253f1bde44f082a5e271e702d6e66d4717

adding podcasts.json @ 2020-02-27T04:13:15.519405Z

view details

vcap

commit sha 70a53107da4ee7463063381466945c8bd16841c6

adding episode-photos @ 2020-02-27T04:13:16.293258Z

view details

vcap

commit sha 3a39016d8ac4ce8e131f442763ed1690be3533ce

adding index.html @ 2020-02-27T04:13:16.340509Z

view details

vcap

commit sha ef46d31ac73dc11446c622d6e12be0685951f3c9

adding assets @ 2020-02-27T04:13:18.630728Z

view details

push time in 6 hours

push eventbootiful-podcast/bootiful-podcast.github.io

vcap

commit sha cb64ac13918fb9a7d7e6ce2e806fda959290c198

adding .git @ 2020-02-26T17:52:02.002594Z

view details

vcap

commit sha 6b0e90f859c65c73e218f49e07cd85b2e39caceb

adding podcasts.json @ 2020-02-26T17:52:02.123260Z

view details

vcap

commit sha e223ab9f3a2302c614363a49602025fc254e4bbd

adding episode-photos @ 2020-02-26T17:52:03.207988Z

view details

vcap

commit sha 9dacbb8ea5b13c15e453d266e9fed0a8595e3156

adding index.html @ 2020-02-26T17:52:03.367809Z

view details

vcap

commit sha fec163b5b16e75f086fab14fb0f5217f1d48197a

adding assets @ 2020-02-26T17:52:06.613Z

view details

push time in 17 hours

issue openedbootiful-podcast/processor

move to clever_cloud!

they have a much simpler mechanism for running this application. Here's a simple CI-ready build

created time in 3 days

push eventbootiful-podcast/api

Josh Long

commit sha 21f31a795aa0888340dc8fa785f68bcff5b201fc

closes #20

view details

push time in 3 days

issue closedbootiful-podcast/api

the final published episode should, for now, just be automatically published and not stored in draft form on Podbean

right now I have no way to publish the episode short of logging into Podbean and click publish. Although, it might be nice to have some mechanism where I can time the publication of the episode? So, maybe dark by default and then a Cloud Foundry scheduled job runs to publish the episode when it's ready?

closed time in 3 days

joshlong

issue commentspring-projects/spring-boot

Provide an RSocketMessageHandlerChdtomizer to allow customizing of the RSocketMessageHandler, please

This is following up on https://github.com/spring-projects/spring-boot/issues/18356#issuecomment-587316687

joshlong

comment created time in 3 days

issue commentspring-projects/spring-boot

Add Auto-configuration for RSocket Security

I just opened https://github.com/spring-projects/spring-boot/issues/20303

rwinch

comment created time in 3 days

issue openedspring-projects/spring-boot

Provide an RSocketMessageHandlerChdtomizer to allow customizing of the RSocketMessageHandler, please

It seems RSocketMessageHandler is a singleton - when I override it, I override the default one provided by Spring Boot. Could Spring Boot please expose a RSocketMessageHandlerCustomizer so that everyone gets a bite at the apple and can contribute framework-specific code like argument resolvers?

created time in 3 days

push eventjoshlong/hello-clever-cloud-for-python

Josh Long

commit sha 25e65f891be90821a6a9faa28aafcdcb13f59d6c

intiial commit

view details

Josh Long

commit sha 1e83b5ef41f1db2f6a5b5fc5e85c8577df461872

requirements.txt

view details

Josh Long

commit sha 381a8a83855e4209b79c5e753a8f7f99d6ef9ab5

adding clever.json

view details

Josh Long

commit sha de7834edd8c54b50c27c29688ff62f81d6aa46b1

polish

view details

Josh Long

commit sha dbd0b5d4029149be3ac2f7d742345ca32caabd3c

modify

view details

Josh Long

commit sha fec8c72f6d23ff9ebbc938ac89bfffc835b74042

modify

view details

Josh Long

commit sha c57ca2b6fc547f782c82e7da6a0b7ad07ed866c9

modify

view details

Josh Long

commit sha 16e7e7a892bdde8118d3471baff58987189e4534

its dirty

view details

Josh Long

commit sha 01f0c4f98fff43d066860146d6f13cc61fe13127

yolo

view details

push time in 3 days

push eventjoshlong/hello-clever-cloud-for-python

Josh Long

commit sha ccb5fa1c27a7b021c26decc7cdf912e045a049ef

Update README.md

view details

push time in 3 days

create barnchjoshlong/hello-clever-cloud-for-python

branch : master

created branch time in 3 days

created repositoryjoshlong/hello-clever-cloud-for-python

A simple Clever Cloud application using Python

created time in 3 days

push eventspring-tips/kotlin-security

Josh Long

commit sha 414e4bc593fd4a6faf024e8a80518399aa73167a

security

view details

push time in 4 days

push eventspring-tips/kotlin-security

Josh Long

commit sha 56269c7c73fcc261b8e77fc22275ff8fa63d60d9

Kotlin and Security

view details

push time in 4 days

push eventspring-tips/kotlin-security

Josh Long

commit sha 15b777df52070247f164fc1d90c087c6b70cfeb1

Polishing off the README

view details

push time in 4 days

push eventspring-tips/kotlin-security

Josh Long

commit sha cbfecd5f63792ecacfcbf4ab63ff5cae71c58dab

initial commit of the README.

view details

push time in 4 days

push eventspring-tips/apache-rocketmq

Josh Long

commit sha ff45d6dce00102c5dedf645632088f212e1d170f

Update README.md

view details

push time in 4 days

push eventspring-tips/ftp-integration

Josh Long

commit sha 52878b0c689a911cc19f9610c66d0e3d3c8baaa5

Update README.md

view details

push time in 4 days

push eventspring-tips/rsocket-security

Josh Long

commit sha dc3752e210b178eb5ba35924c4c5b46033f39549

Update README.md

view details

push time in 4 days

push eventspring-tips/rsocket-security

Josh Long

commit sha dae4fac1d04a366d90c6c147129de96ef0fb8c00

readme

view details

push time in 4 days

push eventspring-tips/ftp-integration

Josh Long

commit sha 5a73d22827336958230a5b86d09251b688df9036

Wrote up a quick README.md.

view details

push time in 4 days

push eventspring-tips/ftp-integration

Josh Long

commit sha f151e8447fe8c78652d041df263dc04c4667f073

updating the .gitignore

view details

push time in 4 days

push eventspring-tips/ftp-integration

Josh Long

commit sha 0ae240b221d09f62116bc478eebd0b0d1b065bdd

updating the .gitignore

view details

push time in 4 days

push eventspring-tips/ftp-integration

Josh Long

commit sha 255f7af86e37138606ac59e366dc1faa119a1076

updating the .gitignore

view details

push time in 4 days

push eventspring-tips/ftp-integration

Josh Long

commit sha e5cd909d8a3256f3ce54630e7faffe218ccb8f3b

updating the .gitignore

view details

push time in 4 days

push eventspring-tips/ftp-integration

Josh Long

commit sha dca1cac593c4e1b58cfc445e286c3c966c79c49f

cleanup the FTPServer.

view details

push time in 4 days

push eventspring-tips/ftp-integration

Josh Long

commit sha f4ad3bce24a97e0a1142e1432bf9e7ccf840256d

add a README.

view details

push time in 4 days

push eventspring-tips/ftp-integration

Josh Long

commit sha 6208210bbb1bdcd14768146d5695f3142353f95d

add a README.

view details

push time in 4 days

push eventjoshlong/the-tdd-with-python-book

Josh Long

commit sha 854d571d8ff604fddaff5e397d7d0437e87bf651

first commit

view details

push time in 4 days

create barnchjoshlong/the-tdd-with-python-book

branch : master

created branch time in 4 days

created repositoryjoshlong/the-tdd-with-python-book

created time in 4 days

push eventspring-tips/ftp-integration

Josh Long

commit sha 819f4fd16b5ed50bb12b43624e30c5619cdada8c

readme

view details

push time in 4 days

push eventspring-tips/ftp-integration

Josh Long

commit sha 0d459d3c54fe62ad3d4872b9f82b232d9ec01361

polish

view details

Josh Long

commit sha cbc0d0053aff520b9cc25a928b84d8daa7e490f6

ftp

view details

push time in 4 days

push eventspring-tips/ftp-integration

Josh Long

commit sha 2a89095aeec5d054860016ae15f931abede04ad7

polish

view details

push time in 5 days

push eventspring-tips/ftp-integration

Josh Long

commit sha 4c0eddc9424723291e0ae07ddf34d8397f15ef4f

polish

view details

push time in 5 days

push eventbootiful-podcast/bootiful-podcast.github.io

vcap

commit sha 0cdc25f044ac5a2d0c3780b94cfb5a181342ae0e

adding .git @ 2020-02-21T06:42:45.825240Z

view details

vcap

commit sha ad3bc7ae26d0d882d4d6c32438e7488a69687c1c

adding podcasts.json @ 2020-02-21T06:42:45.878185Z

view details

vcap

commit sha ed5b337e4fe0b7fd1f28efed37ad36ae0b95a4a2

adding episode-photos @ 2020-02-21T06:42:46.328126Z

view details

vcap

commit sha 3764697cf7b237da0bad7a9b5514c86df1c8fb36

adding index.html @ 2020-02-21T06:42:46.363492Z

view details

vcap

commit sha 15ea8f34021d4bfbfb9ed2c5813361d0d08773fe

adding assets @ 2020-02-21T06:42:48.668077Z

view details

push time in 6 days

push eventspring-tips/apache-rocketmq

Josh Long

commit sha 63ca2d259528f69d5967f024e726f5de1c637ac5

readme for the blog

view details

push time in 6 days

push eventreactive-spring-book/rsocket

Josh Long

commit sha 6f306322d8a2dd978db8a12741109fba14159b30

this is a simple pom.xml

view details

push time in 6 days

push eventreactive-spring-book/rsocket

Josh Long

commit sha bbe6c404a7c71b47a1f5b7325e2449e9d9f19ee5

initial commit of tje raw rsocket chapter.

view details

push time in 6 days

create barnchreactive-spring-book/rsocket

branch : master

created branch time in 6 days

created repositoryreactive-spring-book/rsocket

We look at the RSocket protocol and its integration in various Spring projects

created time in 6 days

push eventjoshlong/ow

Josh Long

commit sha 3a20705847b007ef12daa8fd2726600609936bae

owowowow

view details

push time in 7 days

create barnchjoshlong/ow

branch : master

created branch time in 7 days

created repositoryjoshlong/ow

created time in 7 days

push eventjoshlong/reactive-revolution

Josh Long

commit sha a83e82bca35cc73bf7daf54e6707ba31bf61a3b5

better client and service .

view details

push time in 7 days

push eventjoshlong/reactive-revolution

Josh Long

commit sha 70e59dad422f2686f76c1b32b90bb275fd2e74f2

adding the kotlin versions.

view details

push time in 7 days

push eventjoshlong/reactive-revolution

Josh Long

commit sha 19782182d07c62cdf0381bab8cac46555a044e73

adding the client and the service demonstrating WebSockets, RSocket, and HTTP.

view details

push time in 7 days

push eventjoshlong/joshlong.github.io-content

Josh Long

commit sha 8ce5a60710772f106eafa040f0f7a0fd26fca479

livelessons updated

view details

push time in 8 days

push eventbootiful-podcast/bootiful-podcast.github.io

vcap

commit sha a8b8694d917203ce533fece195a9a2545ded95dc

adding .git @ 2020-02-19T08:04:11.569111Z

view details

vcap

commit sha e65efe525456cf5ef77b869b7caaa2a2d2c94c0b

adding podcasts.json @ 2020-02-19T08:04:12.355534Z

view details

vcap

commit sha 79b6f3b0bff8f42740bdebf5ded6c3d082367c50

adding episode-photos @ 2020-02-19T08:04:22.250309Z

view details

vcap

commit sha d52f78a355894bea92fe8d5d85f6ca6147f10253

adding index.html @ 2020-02-19T08:04:22.729788Z

view details

vcap

commit sha fe29893d696ea8f085cd9a3c81205d9ccc646bde

adding assets @ 2020-02-19T08:04:29.179851Z

view details

push time in 8 days

push eventspring-tips/apache-rocketmq

Josh Long

commit sha 64cf6a27e6cb31057309d944a7a3669f0798a685

producer

view details

push time in 9 days

push eventspring-tips/apache-rocketmq

Josh Long

commit sha a27b5ba9534bbeb724cf77aa2d616c0fa9d37940

polish...

view details

push time in 9 days

push eventspring-tips/apache-rocketmq

Josh Long

commit sha a8ff1674f8b7481935082885df7bab2826281757

ProducerApplication is now a little bit cleaner.

view details

push time in 9 days

push eventspring-tips/apache-rocketmq

Josh Long

commit sha e0d3d1f5465f8ddc4c2d537d471ad7d6a8a3d90e

supporting SQL filtering...

view details

push time in 9 days

issue commentspring-projects/spring-boot

Add Auto-configuration for RSocket Security

Oh. It seems RSocketMessageHandler is a singleton - when I override it, I override the default one provided by Spring Boot. So, maybe Boot could expose a RSocketMessageHandlerCustomizer so that everyone gets a bite at the apple?

rwinch

comment created time in 9 days

issue commentspring-projects/spring-framework

Add @EnableRSocket Configuration

I would love to see this land, if possible.

rwinch

comment created time in 9 days

issue commentspring-projects/spring-boot

Add Auto-configuration for RSocket Security

Hi,

Having resolvers would be a very nice addition in Spring Framework. But I only want to use @AuthenticatedPrincipal to inject the currently authenticated principal into my @MessageMapping-annotated handlers. It's what I would expect when using Spring MVC or WebFlux. This just works in those frameworks.


import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import org.springframework.security.core.annotation.AuthenticationPrincipal;
import org.springframework.security.core.userdetails.MapReactiveUserDetailsService;
import org.springframework.security.core.userdetails.User;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@SpringBootApplication
public class DemoApplication {

	@RestController
	static class HelloController {

		@GetMapping("/hello")
		String hello(@AuthenticationPrincipal UserDetails userDetails) {
			return "hello, " + userDetails.getUsername() + "!";
		}
	}

	@Bean
	MapReactiveUserDetailsService authentication() {
		var jlong = User.withDefaultPasswordEncoder().username("jlong").password("pw").roles("USER").build();
		return new MapReactiveUserDetailsService(jlong);
	}

	public static void main(String[] args) {
		SpringApplication.run(DemoApplication.class, args);
	}

}

It's also preferable to using ReactiveSecurityContextHolder.getContext().map(auth -> ...).

So, until the more elegant custom resolvers and @EnableRSocket machinery lands in Spring Framework, could we please add a bean to the Spring Boot autoconfiguration, like the following:

@Bean 
RSocketMessageHandler messageHandler(RSocketStrategies strategies) {
 var rmh = new RSocketMessageHandler();
 rmh.getArgumentResolverConfigurer().addCustomResolver(new AuthenticationPrincipalArgumentResolver());
 rmh.setRSocketStrategies(strategies);
 return rmh;
}

As far as I understand it, nothing would break for the user, and - in addition, this would allow Spring Security to work better? And, if we're worried, I guess users could opt-out (but I would argue it should be enabled by default) with some sort of configuration property?

rwinch

comment created time in 9 days

push eventspring-tips/kotlin-security

Josh Long

commit sha c2433a13cb8009878677d464a3df93c04f93cb24

initial commit of the Kotlin Security DSL

view details

push time in 10 days

push eventspring-tips/kotlin-security

Josh Long

commit sha 9012b59646b86e82c5a7d411d482b47647d84efd

adding kotlin security

view details

push time in 10 days

push eventspring-tips/kotlin-security

Josh Long

commit sha 4bfb90d7262933768f864f4b69326e9eee7ef5a3

polish

view details

push time in 10 days

push eventspring-tips/rsocket-security

Josh Long

commit sha 116f224f9a23c2a178075266c8e8f90967c29265

code as shown in the video

view details

push time in 10 days

push eventspring-tips/rsocket-security

Josh Long

commit sha e316902a748e6963586a633394efef20c185fd8a

adding `@AuthenticatedPrincipal` support.

view details

push time in 10 days

push eventspring-tips/rsocket-security

Josh Long

commit sha db9e4c9d95ea85b3e88b747acd6f07a434c8db42

adding `@AuthenticatedPrincipal` support.

view details

push time in 10 days

push eventspring-tips/rsocket-security

Josh Long

commit sha ca2974631703be085c90b5ac0c514fd137c56b91

adding `@AuthenticatedPrincipal` support.

view details

push time in 10 days

push eventspring-tips/rsocket-security

Josh Long

commit sha 37144891a085a7f728f547610ab15e5f078215a2

ok we're now using simple authentication end-to-end. Good.

view details

push time in 10 days

push eventspring-tips/rsocket-security

Josh Long

commit sha 1c9a6e635dd7988777936800bcadf46796c0bd83

ok we're now using simple authentication end-to-end. Good.

view details

push time in 10 days

push eventspring-tips/kotlin-security

Josh Long

commit sha b6e96326288c095a681d4e81172ec94901e96ebb

changing the variable

view details

push time in 11 days

push eventspring-tips/cloudfoundry-java-client-autoconfiguration

Josh Long

commit sha 6c4b76b6b524d5d355911a6df6e8918d1a0745f7

initial commit to the new autoconfig.

view details

push time in 12 days

push eventspring-tips/spring-cloud-load-balancer

Josh Long

commit sha 660c31076050e47316784b235b35bb0835d76c4a

initial commit

view details

push time in 12 days

push eventspring-tips/cloudfoundry-java-client-autoconfiguration

Josh Long

commit sha 68080e6a1f08797fe7468da4002a6837fa88a8b0

polishing the python app

view details

push time in 13 days

push eventspring-tips/__init__

Josh Long

commit sha eed959af5427fd4179459c6bed374a8d0e389d48

Update repositories.txt Re-ordering the repository names.

view details

push time in 13 days

push eventspring-tips/apache-rocketmq

Josh Long

commit sha 75b72a6f2f0da4412ef3ff24daf13ec573fdee99

Update README.md

view details

push time in 13 days

push eventspring-tips/apache-rocketmq

Josh Long

commit sha 157ad2561e83b3ee723aa3f539a355331c2bbbba

Update README.md

view details

push time in 13 days

push eventspring-tips/__init__

Josh Long

commit sha f5cbefbb652ceaf1dfa38a81320458b8753ecce8

Update repositories.txt

view details

push time in 13 days

push eventspring-tips/bootiful-apache-rocketmq

Josh Long

commit sha a97b0f88f5557d672fcd28b5ade8bb5237a6dfc0

polish ...

view details

push time in 13 days

push eventspring-tips/bootiful-apache-rocketmq

Josh Long

commit sha 3e8ecc82bd15a3784670a359aea4b88e4c4f4073

adding the producer

view details

push time in 13 days

push eventspring-tips/bootiful-apache-rocketmq

Josh Long

commit sha 4e4f5d266dd47b8c0814c253c7be30bb4344c857

refactoring...

view details

push time in 13 days

push eventspring-tips/bootiful-apache-rocketmq

Josh Long

commit sha 0aa8ab229b1cf1d01684d99beeb3cfd17a343bce

adding the producer and consumer

view details

push time in 13 days

create barnchspring-tips/bootiful-apache-rocketmq

branch : master

created branch time in 13 days

created repositoryspring-tips/bootiful-apache-rocketmq

Hi, Spring fans! in this installment we look at how to use RocketMQ with Spring Boot.

created time in 13 days

push eventspring-tips/cloudfoundry-java-client-autoconfiguration

Josh Long

commit sha 73202753e79343192c269dd2af46791c72b7cc79

The code now correctly restages builds based on the Python buildpack. I was finally able to test it with a Python-based application.

view details

push time in 13 days

push eventspring-tips/cloudfoundry-java-client-autoconfiguration

Josh Long

commit sha c4b62f7e5fac46f82bddb8cd6ae628ce68e50ce8

deploy to cf

view details

push time in 13 days

push eventspring-tips/cloudfoundry-java-client-autoconfiguration

Josh Long

commit sha 665952ac8f31d9e8f9197d2aceff253c0d5cec04

simple python application

view details

push time in 13 days

push eventspring-tips/cloudfoundry-java-client-autoconfiguration

Josh Long

commit sha 9b418328d259f0e8a74304cfa6d1346ee829d5f7

adding the sample java app.

view details

push time in 13 days

push eventspring-tips/__init__

Josh Long

commit sha acbcaeda2442f99bf56bd4e911dde2b977d15b89

Update repositories.txt

view details

push time in 13 days

push eventspring-tips/cloudfoundry-java-client-autoconfiguration

Josh Long

commit sha 8500de464ff86286e8b11fc4767408ba18157aa4

mvn...

view details

push time in 13 days

push eventspring-tips/cloudfoundry-java-client-autoconfiguration

Josh Long

commit sha baf7c293499a2bf7482a5575cf340151ee336d1e

initial commit

view details

push time in 13 days

create barnchspring-tips/cloudfoundry-java-client-autoconfiguration

branch : master

created branch time in 13 days

created repositoryspring-tips/cloudfoundry-java-client-autoconfiguration

Hi, Spring fans! In this installment of Spring Tips we look at the Cloud Foundry Java autoconfiguration

created time in 13 days

push eventspring-tips/__init__

Josh Long

commit sha a46d797b8095b8e14dae08e90bbd382df2eacacd

Update repositories.txt

view details

push time in 13 days

created repositoryspring-tips/kotlin-security

Hi, Spring fans! In this installment we look at the new Kotlin DSL for Spring Security

created time in 13 days

push eventspring-tips/kotlin-security

Josh Long

commit sha d0476e26d370d9904c023995d7b777fb9b329d74

Adding the initial Spring Security Kotlin DSL example

view details

push time in 13 days

create barnchspring-tips/kotlin-security

branch : master

created branch time in 13 days

push eventspring-tips/__init__

Josh Long

commit sha 9bb91550ebc8dbeded0393f3bc6ea842b4170e68

Update repositories.txt

view details

push time in 13 days

push eventspring-tips/rsocket-security

Josh Long

commit sha 5a88c4b2caa90502c292528537a8da0108a868db

RSocket Security

view details

push time in 13 days

create barnchspring-tips/rsocket-security

branch : master

created branch time in 13 days

created repositoryspring-tips/rsocket-security

Hi Spring fans! In this installment, we look at using Spring Security and RSocket together

created time in 13 days

push eventspring-tips/spring-cloud-load-balancer

Josh Long

commit sha daeead19d73438cc576c8b004a65204ba6f59960

teased the examples into more distinct things

view details

push time in 13 days

push eventspring-tips/spring-cloud-load-balancer

Josh Long

commit sha 727c8723ad5377c9a43e58c6a75004ccb4cf9663

Updated to the latest versions of Spring Cloud.

view details

push time in 13 days

issue openedbootiful-podcast/api

the final published episode should, for now, just be automatically published and not stored in draft form on Podbean

right now I have no way to publish the episode short of logging into Podbean and click publish. Although, it might be nice to have some mechanism where I can time the publication of the episode? So, maybe dark by default and then a Cloud Foundry scheduled job runs to publish the episode when it's ready?

created time in 13 days

issue openedbootiful-podcast/api

the description that's sent to Podbean should be the rendered HTML, not the Markdown

the description that's sent to Podbean should be the rendered HTML, not the Markdown. Or, send something with no HTML and no bullet points?

created time in 13 days

more