Skip to content

Instantly share code, notes, and snippets.

View antosha4e's full-sized avatar
:octocat:
Problem solver

Anton Arsentyev antosha4e

:octocat:
Problem solver
View GitHub Profile
// ==UserScript==
// @name LinkedIn hide jobs
// @namespace linkedin
// @version 0.2
// @description try to take over the world!
// @author me
// @match https://www.linkedin.com/jobs/search/*
// @grant none
// @require http://code.jquery.com/jquery-3.4.1.min.js
// ==/UserScript==
@antosha4e
antosha4e / BankServiceLogTest.kt
Created April 24, 2020 10:17
Unit test to see if we masking sensitive data
class BankServiceLogTest {
private val bankService: BankService = BankService()
@Test
fun `should not contain card number`() {
// GIVEN
val cardNumber = "4012888888881882"
bankService.doTransaction(cardNumber)
@antosha4e
antosha4e / TestLogAppender.kt
Created April 24, 2020 10:11
Log appender that used for unit test purposes
@Plugin(
name = "TestLogAppender",
category = "Core",
elementType = "appender",
printObject = true
)
class TestLogAppender(
name: String?,
filter: Filter?,
private val patternLayout: Layout<String>,
@antosha4e
antosha4e / MaskingPatternLayout.kt
Last active April 24, 2020 10:14
PatternLayout implementation to support custom masking logic
@Plugin(name = "MaskingPatternLayout", category = Node.CATEGORY, elementType = Layout.ELEMENT_TYPE, printObject = false)
class MaskingPatternLayout(
charset: Charset?,
private val patternLayout: PatternLayout
) : AbstractStringLayout(charset) {
companion object {
private const val CARD_MASK = "$1++++++++++++"
private val CARD_PATTERN = Pattern.compile("([0-9]{4})([0-9]{9,15})")
@antosha4e
antosha4e / log4j2.xml
Created April 24, 2020 09:56
Advanced masking log configuration
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="info" name="TestApp" packages='com.antosha4e.log'>
<Appenders>
<Console name="INLINE_PATTERN" target="SYSTEM_OUT">
<MaskingPatternLayout pattern="%d %highlight{%p} %c{1.} [%t] %m%n" />
</Console>
<Console name="NESTED_PATTERN" target="SYSTEM_OUT">
@antosha4e
antosha4e / log4j2.xml
Last active April 24, 2020 09:58
Simple masking approach log4j2 configuration
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="info" name="TestApp" packages='com.antosha4e.log'>
<Appenders>
<Console name="NAIVE_MASK" target="SYSTEM_OUT">
<PatternLayout>
<pattern>%d %highlight{%p} %c{1.} [%t] %m%n</pattern>
<replace regex="([0-9]{4})([0-9]{9,15})" replacement="$1************"/>
</PatternLayout>
@antosha4e
antosha4e / BankService.kt
Last active April 24, 2020 09:58
Service performing bank transactions
import org.slf4j.Logger
import org.slf4j.LoggerFactory
class BankService {
private val log: Logger = LoggerFactory.getLogger(BankService::class.java)
fun doTransaction(cardNumber: String) {
log.info("Started transaction")
@antosha4e
antosha4e / CoffeeServiceTest.java
Created March 26, 2018 15:36
CoffeeServiceTest code for article
public class CoffeeServiceTest {
private CoffeeService coffeeService = new CoffeeService();
@Test
public void testLogOutputNaive() {
final String baristaName = "Stavros Domatiotis";
final String coffeeName = "Flat White";
@antosha4e
antosha4e / TestLogAppender.java
Created March 26, 2018 15:34
LogAppender code for article
// note: class name need not match the @Plugin name.
@Plugin(name = "TestLogAppender", category = "Core", elementType = "appender", printObject = true)
public class TestLogAppender extends AbstractAppender {
private static TestLogAppender instance;
public static TestLogAppender getInstance() {
return instance;
}
@antosha4e
antosha4e / log4j2.xml
Created March 26, 2018 15:34
Config code for article
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="info" name="TestApp">
<Appenders>
<Console name="STDOUT" target="SYSTEM_OUT">
<PatternLayout pattern='%d %highlight{%p} %c{1.} [%t] %m%n'/>
</Console>
<Async name="Async">
<AppenderRef ref="STDOUT"/>
</Async>