diff --git a/full/Changes b/full/Changes
index 6b13254..85c1dd7 100644
--- a/full/Changes
+++ b/full/Changes
@@ -1,5 +1,5 @@
 version 0.60.2
-17/04/2018
+23/04/2018
 	- implemented OAuth2 client registration (margaretha)
 	- implemented OAuth2 client authentication (margaretha)
 	- changed virtual corpus search to retrieval (margaretha)
@@ -10,6 +10,7 @@
 	- implemented OAuth2 exception handler (margaretha)
 	- implemented OAuth2 request access token with client credentials grant (margaretha)
 	- implemented OAuth2 request access token with resource owner password grant (margaretha)
+	- implemented OAuth2 authorization code request (margaretha)
 	
 version 0.60.1
 28/03/2018
diff --git a/full/hs_err_pid31138.log b/full/hs_err_pid31138.log
new file mode 100644
index 0000000..c989a1f
--- /dev/null
+++ b/full/hs_err_pid31138.log
@@ -0,0 +1,919 @@
+#
+# There is insufficient memory for the Java Runtime Environment to continue.
+# Native memory allocation (mmap) failed to map 91226112 bytes for committing reserved memory.
+# Possible reasons:
+#   The system is out of physical RAM or swap space
+#   In 32 bit mode, the process size limit was hit
+# Possible solutions:
+#   Reduce memory load on the system
+#   Increase physical memory or swap space
+#   Check if swap backing store is full
+#   Use 64 bit Java on a 64 bit OS
+#   Decrease Java heap size (-Xmx/-Xms)
+#   Decrease number of Java threads
+#   Decrease Java thread stack sizes (-Xss)
+#   Set larger code cache with -XX:ReservedCodeCacheSize=
+# This output file may be truncated or incomplete.
+#
+#  Out of Memory Error (os_linux.cpp:2627), pid=31138, tid=0x00007f0cd38f8700
+#
+# JRE version: Java(TM) SE Runtime Environment (8.0_112-b15) (build 1.8.0_112-b15)
+# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.112-b15 mixed mode linux-amd64 compressed oops)
+# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
+#
+
+---------------  T H R E A D  ---------------
+
+Current thread (0x00007f0cf0084800):  VMThread [stack: 0x00007f0cd37f8000,0x00007f0cd38f9000] [id=31151]
+
+Stack: [0x00007f0cd37f8000,0x00007f0cd38f9000],  sp=0x00007f0cd38f7020,  free space=1020k
+Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
+V  [libjvm.so+0xac6f7a]  VMError::report_and_die()+0x2ba
+V  [libjvm.so+0x4fc71b]  report_vm_out_of_memory(char const*, int, unsigned long, VMErrorType, char const*)+0x8b
+V  [libjvm.so+0x923b13]  os::Linux::commit_memory_impl(char*, unsigned long, bool)+0x103
+V  [libjvm.so+0x924069]  os::pd_commit_memory(char*, unsigned long, unsigned long, bool)+0x29
+V  [libjvm.so+0x91e37a]  os::commit_memory(char*, unsigned long, unsigned long, bool)+0x2a
+V  [libjvm.so+0x992da3]  PSVirtualSpace::expand_by(unsigned long)+0x53
+V  [libjvm.so+0x9941a8]  PSYoungGen::resize_generation(unsigned long, unsigned long)+0xf8
+V  [libjvm.so+0x993302]  PSYoungGen::resize(unsigned long, unsigned long)+0x22
+V  [libjvm.so+0x9905db]  PSScavenge::invoke_no_policy()+0xf3b
+V  [libjvm.so+0x990d61]  PSScavenge::invoke()+0x41
+V  [libjvm.so+0x947ac0]  ParallelScavengeHeap::failed_mem_allocate(unsigned long)+0x70
+V  [libjvm.so+0xac8997]  VM_ParallelGCFailedAllocation::doit()+0x97
+V  [libjvm.so+0xad0475]  VM_Operation::evaluate()+0x55
+V  [libjvm.so+0xace84a]  VMThread::evaluate_operation(VM_Operation*)+0xba
+V  [libjvm.so+0xacebce]  VMThread::loop()+0x1ce
+V  [libjvm.so+0xacf040]  VMThread::run()+0x70
+V  [libjvm.so+0x926138]  java_start(Thread*)+0x108
+
+VM_Operation (0x00007f0cf985a7f0): ParallelGCFailedAllocation, mode: safepoint, requested by thread 0x00007f0cf0017000
+
+
+---------------  P R O C E S S  ---------------
+
+Java Threads: ( => current thread )
+  0x00007f0cf2522800 JavaThread "pool-3-thread-1" [_thread_blocked, id=31264, stack(0x00007f0c940fc000,0x00007f0c941fd000)]
+  0x00007f0cf2cee800 JavaThread "pool-2-thread-1" [_thread_blocked, id=31229, stack(0x00007f0c949fd000,0x00007f0c94afe000)]
+  0x00007f0cf2c9f800 JavaThread "id_tokens.data" [_thread_blocked, id=31227, stack(0x00007f0c94afe000,0x00007f0c94bff000)]
+  0x00007f0cf2c89800 JavaThread "Statistics Thread-__DEFAULT__-1" daemon [_thread_blocked, id=31226, stack(0x00007f0cc409f000,0x00007f0cc41a0000)]
+  0x00007f0cf2c72000 JavaThread "id_tokens_inv.data" [_thread_blocked, id=31221, stack(0x00007f0cd00d1000,0x00007f0cd01d2000)]
+  0x00007f0cf2c63000 JavaThread "__DEFAULT__" daemon [_thread_blocked, id=31220, stack(0x00007f0cd0e83000,0x00007f0cd0f84000)]
+  0x00007f0cf1aeb000 JavaThread "Abandoned connection cleanup thread" daemon [_thread_blocked, id=31196, stack(0x00007f0cd06bc000,0x00007f0cd07bd000)]
+  0x00007f0cf0a32800 JavaThread "ReaderThread" [_thread_in_native, id=31177, stack(0x00007f0cd2200000,0x00007f0cd2301000)]
+  0x00007f0cf00ea800 JavaThread "Service Thread" daemon [_thread_blocked, id=31167, stack(0x00007f0cd2bea000,0x00007f0cd2ceb000)]
+  0x00007f0cf00df000 JavaThread "C1 CompilerThread2" daemon [_thread_blocked, id=31165, stack(0x00007f0cd2ceb000,0x00007f0cd2dec000)]
+  0x00007f0cf00dd800 JavaThread "C2 CompilerThread1" daemon [_thread_in_native, id=31164, stack(0x00007f0cd2dec000,0x00007f0cd2eed000)]
+  0x00007f0cf00da800 JavaThread "C2 CompilerThread0" daemon [_thread_blocked, id=31163, stack(0x00007f0cd2eed000,0x00007f0cd2fee000)]
+  0x00007f0cb4001000 JavaThread "JDWP Command Reader" daemon [_thread_blocked, id=31160, stack(0x00007f0cd2fee000,0x00007f0cd30ef000)]
+  0x00007f0cf00d8800 JavaThread "JDWP Event Helper Thread" daemon [_thread_blocked, id=31159, stack(0x00007f0cd30ef000,0x00007f0cd31f0000)]
+  0x00007f0cf00d4800 JavaThread "JDWP Transport Listener: dt_socket" daemon [_thread_blocked, id=31156, stack(0x00007f0cd31f0000,0x00007f0cd32f1000)]
+  0x00007f0cf00c3000 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=31154, stack(0x00007f0cd34f5000,0x00007f0cd35f6000)]
+  0x00007f0cf0091000 JavaThread "Finalizer" daemon [_thread_blocked, id=31153, stack(0x00007f0cd35f6000,0x00007f0cd36f7000)]
+  0x00007f0cf008c800 JavaThread "Reference Handler" daemon [_thread_blocked, id=31152, stack(0x00007f0cd36f7000,0x00007f0cd37f8000)]
+  0x00007f0cf0017000 JavaThread "main" [_thread_blocked, id=31146, stack(0x00007f0cf9760000,0x00007f0cf9861000)]
+
+Other Threads:
+=>0x00007f0cf0084800 VMThread [stack: 0x00007f0cd37f8000,0x00007f0cd38f9000] [id=31151]
+  0x00007f0cf00ee000 WatcherThread [stack: 0x00007f0cd2ae9000,0x00007f0cd2bea000] [id=31168]
+
+VM state:at safepoint (normal execution)
+
+VM Mutex/Monitor currently owned by a thread:  ([mutex/lock_event])
+[0x00007f0cf00130a0] Threads_lock - owner thread: 0x00007f0cf0084800
+[0x00007f0cf00135a0] Heap_lock - owner thread: 0x00007f0cf0017000
+
+Heap:
+ PSYoungGen      total 324608K, used 11247K [0x000000076d180000, 0x0000000782e80000, 0x00000007c0000000)
+  eden space 313344K, 0% used [0x000000076d180000,0x000000076d180000,0x0000000780380000)
+  from space 11264K, 99% used [0x0000000781880000,0x000000078237be48,0x0000000782380000)
+  to   space 10240K, 0% used [0x0000000782480000,0x0000000782480000,0x0000000782e80000)
+ ParOldGen       total 140800K, used 20496K [0x00000006c7400000, 0x00000006cfd80000, 0x000000076d180000)
+  object space 140800K, 14% used [0x00000006c7400000,0x00000006c88042d8,0x00000006cfd80000)
+ Metaspace       used 48837K, capacity 49506K, committed 49792K, reserved 1093632K
+  class space    used 6068K, capacity 6238K, committed 6272K, reserved 1048576K
+
+Card table byte_map: [0x00007f0cf54ad000,0x00007f0cf5c74000] byte_map_base: 0x00007f0cf1e73000
+
+Marking Bits: (ParMarkBitMap*) 0x00007f0cf8c32c80
+ Begin Bits: [0x00007f0cc43a0000, 0x00007f0cc81d0000)
+ End Bits:   [0x00007f0cc81d0000, 0x00007f0ccc000000)
+
+Polling page: 0x00007f0cf9885000
+
+CodeCache: size=245760Kb used=16772Kb max_used=16772Kb free=228987Kb
+ bounds [0x00007f0ce1000000, 0x00007f0ce2070000, 0x00007f0cf0000000]
+ total_blobs=5214 nmethods=4705 adapters=429
+ compilation: enabled
+
+Compilation events (10 events):
+Event: 11,826 Thread 0x00007f0cf00df000 5245       2       org.terracotta.context.extractor.ObjectContextExtractor::extractInstanceAttribute (40 bytes)
+Event: 11,826 Thread 0x00007f0cf00df000 nmethod 5245 0x00007f0ce206b650 code [0x00007f0ce206b840, 0x00007f0ce206be68]
+Event: 11,827 Thread 0x00007f0cf00df000 5246       2       org.terracotta.context.extractor.LazyContextElement::<init> (22 bytes)
+Event: 11,827 Thread 0x00007f0cf00df000 nmethod 5246 0x00007f0ce206c350 code [0x00007f0ce206c4c0, 0x00007f0ce206c708]
+Event: 11,827 Thread 0x00007f0cf00df000 5247       2       org.terracotta.statistics.StatisticsManager$1::contextCreated (5 bytes)
+Event: 11,827 Thread 0x00007f0cf00df000 nmethod 5247 0x00007f0ce206c810 code [0x00007f0ce206c980, 0x00007f0ce206cb08]
+Event: 11,835 Thread 0x00007f0cf00df000 5248   !   2       sun.reflect.GeneratedMethodAccessor6::invoke (63 bytes)
+Event: 11,836 Thread 0x00007f0cf00df000 nmethod 5248 0x00007f0ce206cbd0 code [0x00007f0ce206cdc0, 0x00007f0ce206d2d8]
+Event: 11,849 Thread 0x00007f0cf00df000 5249       2       org.springframework.beans.factory.support.AbstractBeanFactory::getBean (9 bytes)
+Event: 11,850 Thread 0x00007f0cf00df000 nmethod 5249 0x00007f0ce206d710 code [0x00007f0ce206d880, 0x00007f0ce206da28]
+
+GC Heap History (10 events):
+Event: 3,746 GC heap after
+Heap after GC invocations=6 (full 1):
+ PSYoungGen      total 139264K, used 6268K [0x000000076d180000, 0x000000077a800000, 0x00000007c0000000)
+  eden space 129024K, 0% used [0x000000076d180000,0x000000076d180000,0x0000000774f80000)
+  from space 10240K, 61% used [0x0000000774f80000,0x000000077559f090,0x0000000775980000)
+  to   space 9216K, 0% used [0x0000000779f00000,0x0000000779f00000,0x000000077a800000)
+ ParOldGen       total 99328K, used 7934K [0x00000006c7400000, 0x00000006cd500000, 0x000000076d180000)
+  object space 99328K, 7% used [0x00000006c7400000,0x00000006c7bbf858,0x00000006cd500000)
+ Metaspace       used 25855K, capacity 26242K, committed 26624K, reserved 1073152K
+  class space    used 3109K, capacity 3220K, committed 3328K, reserved 1048576K
+}
+Event: 4,837 GC heap before
+{Heap before GC invocations=7 (full 1):
+ PSYoungGen      total 139264K, used 135292K [0x000000076d180000, 0x000000077a800000, 0x00000007c0000000)
+  eden space 129024K, 100% used [0x000000076d180000,0x0000000774f80000,0x0000000774f80000)
+  from space 10240K, 61% used [0x0000000774f80000,0x000000077559f090,0x0000000775980000)
+  to   space 9216K, 0% used [0x0000000779f00000,0x0000000779f00000,0x000000077a800000)
+ ParOldGen       total 99328K, used 7934K [0x00000006c7400000, 0x00000006cd500000, 0x000000076d180000)
+  object space 99328K, 7% used [0x00000006c7400000,0x00000006c7bbf858,0x00000006cd500000)
+ Metaspace       used 32832K, capacity 33212K, committed 33536K, reserved 1079296K
+  class space    used 4151K, capacity 4261K, committed 4352K, reserved 1048576K
+Event: 4,851 GC heap after
+Heap after GC invocations=7 (full 1):
+ PSYoungGen      total 208384K, used 8882K [0x000000076d180000, 0x000000077a800000, 0x00000007c0000000)
+  eden space 199168K, 0% used [0x000000076d180000,0x000000076d180000,0x0000000779400000)
+  from space 9216K, 96% used [0x0000000779f00000,0x000000077a7aca40,0x000000077a800000)
+  to   space 10240K, 0% used [0x0000000779400000,0x0000000779400000,0x0000000779e00000)
+ ParOldGen       total 99328K, used 7942K [0x00000006c7400000, 0x00000006cd500000, 0x000000076d180000)
+  object space 99328K, 7% used [0x00000006c7400000,0x00000006c7bc1858,0x00000006cd500000)
+ Metaspace       used 32832K, capacity 33212K, committed 33536K, reserved 1079296K
+  class space    used 4151K, capacity 4261K, committed 4352K, reserved 1048576K
+}
+Event: 5,331 GC heap before
+{Heap before GC invocations=8 (full 1):
+ PSYoungGen      total 208384K, used 59835K [0x000000076d180000, 0x000000077a800000, 0x00000007c0000000)
+  eden space 199168K, 25% used [0x000000076d180000,0x0000000770342228,0x0000000779400000)
+  from space 9216K, 96% used [0x0000000779f00000,0x000000077a7aca40,0x000000077a800000)
+  to   space 10240K, 0% used [0x0000000779400000,0x0000000779400000,0x0000000779e00000)
+ ParOldGen       total 99328K, used 7942K [0x00000006c7400000, 0x00000006cd500000, 0x000000076d180000)
+  object space 99328K, 7% used [0x00000006c7400000,0x00000006c7bc1858,0x00000006cd500000)
+ Metaspace       used 34813K, capacity 35202K, committed 35496K, reserved 1081344K
+  class space    used 4420K, capacity 4518K, committed 4608K, reserved 1048576K
+Event: 5,367 GC heap after
+Heap after GC invocations=8 (full 1):
+ PSYoungGen      total 209408K, used 6042K [0x000000076d180000, 0x0000000782e80000, 0x00000007c0000000)
+  eden space 199168K, 0% used [0x000000076d180000,0x000000076d180000,0x0000000779400000)
+  from space 10240K, 59% used [0x0000000779400000,0x00000007799e69c0,0x0000000779e00000)
+  to   space 10240K, 0% used [0x0000000782480000,0x0000000782480000,0x0000000782e80000)
+ ParOldGen       total 99328K, used 7950K [0x00000006c7400000, 0x00000006cd500000, 0x000000076d180000)
+  object space 99328K, 8% used [0x00000006c7400000,0x00000006c7bc3858,0x00000006cd500000)
+ Metaspace       used 34813K, capacity 35202K, committed 35496K, reserved 1081344K
+  class space    used 4420K, capacity 4518K, committed 4608K, reserved 1048576K
+}
+Event: 5,368 GC heap before
+{Heap before GC invocations=9 (full 2):
+ PSYoungGen      total 209408K, used 6042K [0x000000076d180000, 0x0000000782e80000, 0x00000007c0000000)
+  eden space 199168K, 0% used [0x000000076d180000,0x000000076d180000,0x0000000779400000)
+  from space 10240K, 59% used [0x0000000779400000,0x00000007799e69c0,0x0000000779e00000)
+  to   space 10240K, 0% used [0x0000000782480000,0x0000000782480000,0x0000000782e80000)
+ ParOldGen       total 99328K, used 7950K [0x00000006c7400000, 0x00000006cd500000, 0x000000076d180000)
+  object space 99328K, 8% used [0x00000006c7400000,0x00000006c7bc3858,0x00000006cd500000)
+ Metaspace       used 34813K, capacity 35202K, committed 35496K, reserved 1081344K
+  class space    used 4420K, capacity 4518K, committed 4608K, reserved 1048576K
+Event: 5,431 GC heap after
+Heap after GC invocations=9 (full 2):
+ PSYoungGen      total 209408K, used 0K [0x000000076d180000, 0x0000000782e80000, 0x00000007c0000000)
+  eden space 199168K, 0% used [0x000000076d180000,0x000000076d180000,0x0000000779400000)
+  from space 10240K, 0% used [0x0000000779400000,0x0000000779400000,0x0000000779e00000)
+  to   space 10240K, 0% used [0x0000000782480000,0x0000000782480000,0x0000000782e80000)
+ ParOldGen       total 140800K, used 12864K [0x00000006c7400000, 0x00000006cfd80000, 0x000000076d180000)
+  object space 140800K, 9% used [0x00000006c7400000,0x00000006c80900b8,0x00000006cfd80000)
+ Metaspace       used 34813K, capacity 35202K, committed 35496K, reserved 1081344K
+  class space    used 4420K, capacity 4518K, committed 4608K, reserved 1048576K
+}
+Event: 8,014 GC heap before
+{Heap before GC invocations=10 (full 2):
+ PSYoungGen      total 209408K, used 199168K [0x000000076d180000, 0x0000000782e80000, 0x00000007c0000000)
+  eden space 199168K, 100% used [0x000000076d180000,0x0000000779400000,0x0000000779400000)
+  from space 10240K, 0% used [0x0000000779400000,0x0000000779400000,0x0000000779e00000)
+  to   space 10240K, 0% used [0x0000000782480000,0x0000000782480000,0x0000000782e80000)
+ ParOldGen       total 140800K, used 12864K [0x00000006c7400000, 0x00000006cfd80000, 0x000000076d180000)
+  object space 140800K, 9% used [0x00000006c7400000,0x00000006c80900b8,0x00000006cfd80000)
+ Metaspace       used 42274K, capacity 42808K, committed 43264K, reserved 1087488K
+  class space    used 5372K, capacity 5515K, committed 5632K, reserved 1048576K
+Event: 8,055 GC heap after
+Heap after GC invocations=10 (full 2):
+ PSYoungGen      total 323584K, used 10221K [0x000000076d180000, 0x0000000782e80000, 0x00000007c0000000)
+  eden space 313344K, 0% used [0x000000076d180000,0x000000076d180000,0x0000000780380000)
+  from space 10240K, 99% used [0x0000000782480000,0x0000000782e7b728,0x0000000782e80000)
+  to   space 11264K, 0% used [0x0000000781880000,0x0000000781880000,0x0000000782380000)
+ ParOldGen       total 140800K, used 13343K [0x00000006c7400000, 0x00000006cfd80000, 0x000000076d180000)
+  object space 140800K, 9% used [0x00000006c7400000,0x00000006c8107da8,0x00000006cfd80000)
+ Metaspace       used 42274K, capacity 42808K, committed 43264K, reserved 1087488K
+  class space    used 5372K, capacity 5515K, committed 5632K, reserved 1048576K
+}
+Event: 11,876 GC heap before
+{Heap before GC invocations=11 (full 2):
+ PSYoungGen      total 323584K, used 323565K [0x000000076d180000, 0x0000000782e80000, 0x00000007c0000000)
+  eden space 313344K, 100% used [0x000000076d180000,0x0000000780380000,0x0000000780380000)
+  from space 10240K, 99% used [0x0000000782480000,0x0000000782e7b728,0x0000000782e80000)
+  to   space 11264K, 0% used [0x0000000781880000,0x0000000781880000,0x0000000782380000)
+ ParOldGen       total 140800K, used 13343K [0x00000006c7400000, 0x00000006cfd80000, 0x000000076d180000)
+  object space 140800K, 9% used [0x00000006c7400000,0x00000006c8107da8,0x00000006cfd80000)
+ Metaspace       used 48837K, capacity 49506K, committed 49792K, reserved 1093632K
+  class space    used 6068K, capacity 6238K, committed 6272K, reserved 1048576K
+
+Deoptimization events (10 events):
+Event: 11,846 Thread 0x00007f0cf0017000 Uncommon trap: reason=unhandled action=none pc=0x00007f0ce198005c method=java.net.URLClassLoader.findClass(Ljava/lang/String;)Ljava/lang/Class; @ 44
+Event: 11,846 Thread 0x00007f0cf0017000 Uncommon trap: reason=unhandled action=none pc=0x00007f0ce198005c method=java.net.URLClassLoader.findClass(Ljava/lang/String;)Ljava/lang/Class; @ 44
+Event: 11,847 Thread 0x00007f0cf0017000 Uncommon trap: reason=unhandled action=none pc=0x00007f0ce198005c method=java.net.URLClassLoader.findClass(Ljava/lang/String;)Ljava/lang/Class; @ 44
+Event: 11,847 Thread 0x00007f0cf0017000 Uncommon trap: reason=unhandled action=none pc=0x00007f0ce198005c method=java.net.URLClassLoader.findClass(Ljava/lang/String;)Ljava/lang/Class; @ 44
+Event: 11,848 Thread 0x00007f0cf0017000 Uncommon trap: reason=range_check action=none pc=0x00007f0ce12e4f6c method=sun.reflect.generics.parser.SignatureParser.current()C @ 34
+Event: 11,862 Thread 0x00007f0cf0017000 Uncommon trap: reason=unhandled action=none pc=0x00007f0ce198005c method=java.net.URLClassLoader.findClass(Ljava/lang/String;)Ljava/lang/Class; @ 44
+Event: 11,863 Thread 0x00007f0cf0017000 Uncommon trap: reason=unhandled action=none pc=0x00007f0ce198005c method=java.net.URLClassLoader.findClass(Ljava/lang/String;)Ljava/lang/Class; @ 44
+Event: 11,863 Thread 0x00007f0cf0017000 Uncommon trap: reason=unhandled action=none pc=0x00007f0ce198005c method=java.net.URLClassLoader.findClass(Ljava/lang/String;)Ljava/lang/Class; @ 44
+Event: 11,864 Thread 0x00007f0cf0017000 Uncommon trap: reason=unhandled action=none pc=0x00007f0ce198005c method=java.net.URLClassLoader.findClass(Ljava/lang/String;)Ljava/lang/Class; @ 44
+Event: 11,864 Thread 0x00007f0cf0017000 Uncommon trap: reason=unhandled action=none pc=0x00007f0ce198005c method=java.net.URLClassLoader.findClass(Ljava/lang/String;)Ljava/lang/Class; @ 44
+
+Internal exceptions (10 events):
+Event: 11,816 Thread 0x00007f0cf0017000 Exception <a 'java/lang/ArrayIndexOutOfBoundsException': 39> (0x0000000780154818) thrown at [/HUDSON3/workspace/8-2-build-linux-amd64/jdk8u112/7884/hotspot/src/share/vm/interpreter/interpreterRuntime.cpp, line 366]
+Event: 11,817 Thread 0x00007f0cf0017000 Exception <a 'java/lang/ArrayIndexOutOfBoundsException': 38> (0x00000007801627f0) thrown at [/HUDSON3/workspace/8-2-build-linux-amd64/jdk8u112/7884/hotspot/src/share/vm/interpreter/interpreterRuntime.cpp, line 366]
+Event: 11,823 Thread 0x00007f0cf0017000 Exception <a 'java/lang/ArrayIndexOutOfBoundsException': 282> (0x00000007801d5e50) thrown at [/HUDSON3/workspace/8-2-build-linux-amd64/jdk8u112/7884/hotspot/src/share/vm/interpreter/interpreterRuntime.cpp, line 366]
+Event: 11,839 Thread 0x00007f0cf0017000 Exception <a 'java/lang/ClassNotFoundException': de/ids_mannheim/korap/interfaces/AuthenticationIfaceCustomizer> (0x0000000780276238) thrown at [/HUDSON3/workspace/8-2-build-linux-amd64/jdk8u112/7884/hotspot/src/share/vm/classfile/systemDictionary.cpp, li
+Event: 11,839 Thread 0x00007f0cf0017000 Exception <a 'java/lang/ArrayIndexOutOfBoundsException': 141> (0x00000007802798f0) thrown at [/HUDSON3/workspace/8-2-build-linux-amd64/jdk8u112/7884/hotspot/src/share/vm/interpreter/interpreterRuntime.cpp, line 366]
+Event: 11,842 Thread 0x00007f0cf0017000 Exception <a 'java/lang/ArrayIndexOutOfBoundsException': 141> (0x000000078029b058) thrown at [/HUDSON3/workspace/8-2-build-linux-amd64/jdk8u112/7884/hotspot/src/share/vm/interpreter/interpreterRuntime.cpp, line 366]
+Event: 11,842 Thread 0x00007f0cf0017000 Exception <a 'java/lang/ArrayIndexOutOfBoundsException': 141> (0x000000078029dab0) thrown at [/HUDSON3/workspace/8-2-build-linux-amd64/jdk8u112/7884/hotspot/src/share/vm/interpreter/interpreterRuntime.cpp, line 366]
+Event: 11,847 Thread 0x00007f0cf0017000 Exception <a 'java/lang/ClassNotFoundException': de/ids_mannheim/korap/interfaces/AuthenticationIfaceCustomizer> (0x00000007802fb7c8) thrown at [/HUDSON3/workspace/8-2-build-linux-amd64/jdk8u112/7884/hotspot/src/share/vm/classfile/systemDictionary.cpp, li
+Event: 11,848 Thread 0x00007f0cf0017000 Exception <a 'java/lang/ArrayIndexOutOfBoundsException': 141> (0x00000007803135f0) thrown at [/HUDSON3/workspace/8-2-build-linux-amd64/jdk8u112/7884/hotspot/src/share/vm/interpreter/interpreterRuntime.cpp, line 366]
+Event: 11,864 Thread 0x00007f0cf0017000 Exception <a 'java/lang/ClassNotFoundException': de/ids_mannheim/korap/interfaces/AuthenticationIfaceCustomizer> (0x00000007803783d0) thrown at [/HUDSON3/workspace/8-2-build-linux-amd64/jdk8u112/7884/hotspot/src/share/vm/classfile/systemDictionary.cpp, li
+
+Events (10 events):
+Event: 11,864 Thread 0x00007f0cf0017000 DEOPT UNPACKING pc=0x00007f0ce1047633 sp=0x00007f0cf985a2a0 mode 1
+Event: 11,864 Thread 0x00007f0cf0017000 DEOPT PACKING pc=0x00007f0ce13166cc sp=0x00007f0cf985ad10
+Event: 11,864 Thread 0x00007f0cf0017000 DEOPT UNPACKING pc=0x00007f0ce1047633 sp=0x00007f0cf985aa90 mode 1
+Event: 11,864 Thread 0x00007f0cf0017000 DEOPT PACKING pc=0x00007f0ce1936ee4 sp=0x00007f0cf985adb0
+Event: 11,864 Thread 0x00007f0cf0017000 DEOPT UNPACKING pc=0x00007f0ce1047633 sp=0x00007f0cf985abd8 mode 1
+Event: 11,864 loading class de/ids_mannheim/korap/interfaces/AuthenticationIfaceCustomizer
+Event: 11,864 loading class de/ids_mannheim/korap/interfaces/AuthenticationIfaceCustomizer done
+Event: 11,864 Thread 0x00007f0cf0017000 DEOPT PACKING pc=0x00007f0ce1451e5c sp=0x00007f0cf985adf0
+Event: 11,864 Thread 0x00007f0cf0017000 DEOPT UNPACKING pc=0x00007f0ce1047633 sp=0x00007f0cf985ab68 mode 1
+Event: 11,868 Executing VM operation: ParallelGCFailedAllocation
+
+
+Dynamic libraries:
+00400000-00401000 r-xp 00000000 08:06 6952826                            /usr/local/java/jdk1.8.0_112/bin/java
+00600000-00601000 rw-p 00000000 08:06 6952826                            /usr/local/java/jdk1.8.0_112/bin/java
+01119000-0113a000 rw-p 00000000 00:00 0                                  [heap]
+6c7400000-6cfd80000 rw-p 00000000 00:00 0 
+6cfd80000-76d180000 ---p 00000000 00:00 0 
+76d180000-782e80000 rw-p 00000000 00:00 0 
+788580000-7c0000000 ---p 00000000 00:00 0 
+7c0000000-7c0620000 rw-p 00000000 00:00 0 
+7c0620000-800000000 ---p 00000000 00:00 0 
+7f0c64000000-7f0c64021000 rw-p 00000000 00:00 0 
+7f0c64021000-7f0c68000000 ---p 00000000 00:00 0 
+7f0c6c000000-7f0c6d36b000 rw-p 00000000 00:00 0 
+7f0c6d36b000-7f0c70000000 ---p 00000000 00:00 0 
+7f0c7390a000-7f0c74000000 rw-p 00000000 00:00 0 
+7f0c74000000-7f0c74021000 rw-p 00000000 00:00 0 
+7f0c74021000-7f0c78000000 ---p 00000000 00:00 0 
+7f0c78000000-7f0c78021000 rw-p 00000000 00:00 0 
+7f0c78021000-7f0c7c000000 ---p 00000000 00:00 0 
+7f0c7c000000-7f0c7c021000 rw-p 00000000 00:00 0 
+7f0c7c021000-7f0c80000000 ---p 00000000 00:00 0 
+7f0c80000000-7f0c80021000 rw-p 00000000 00:00 0 
+7f0c80021000-7f0c84000000 ---p 00000000 00:00 0 
+7f0c84000000-7f0c84021000 rw-p 00000000 00:00 0 
+7f0c84021000-7f0c88000000 ---p 00000000 00:00 0 
+7f0c88000000-7f0c88021000 rw-p 00000000 00:00 0 
+7f0c88021000-7f0c8c000000 ---p 00000000 00:00 0 
+7f0c8c000000-7f0c8c021000 rw-p 00000000 00:00 0 
+7f0c8c021000-7f0c90000000 ---p 00000000 00:00 0 
+7f0c90000000-7f0c90021000 rw-p 00000000 00:00 0 
+7f0c90021000-7f0c94000000 ---p 00000000 00:00 0 
+7f0c940fc000-7f0c940ff000 ---p 00000000 00:00 0 
+7f0c940ff000-7f0c9427d000 rw-p 00000000 00:00 0 
+7f0c9427d000-7f0c943fd000 ---p 00000000 00:00 0 
+7f0c943fd000-7f0c945fd000 rw-p 00000000 00:00 0 
+7f0c945fd000-7f0c947fd000 rw-p 00000000 00:00 0 
+7f0c947fd000-7f0c949fd000 rw-p 00000000 00:00 0 
+7f0c949fd000-7f0c94a00000 ---p 00000000 00:00 0 
+7f0c94a00000-7f0c94afe000 rw-p 00000000 00:00 0 
+7f0c94afe000-7f0c94b01000 ---p 00000000 00:00 0 
+7f0c94b01000-7f0c94dff000 rw-p 00000000 00:00 0 
+7f0c94dff000-7f0c94fff000 rw-p 00000000 00:00 0 
+7f0c94fff000-7f0c98000000 rw-p 00000000 00:00 0 
+7f0c98000000-7f0c996c5000 rw-p 00000000 00:00 0 
+7f0c996c5000-7f0c9c000000 ---p 00000000 00:00 0 
+7f0c9c000000-7f0c9c021000 rw-p 00000000 00:00 0 
+7f0c9c021000-7f0ca0000000 ---p 00000000 00:00 0 
+7f0ca0000000-7f0ca3e49000 rw-p 00000000 00:00 0 
+7f0ca3e49000-7f0ca4000000 ---p 00000000 00:00 0 
+7f0ca4000000-7f0ca7ffc000 rw-p 00000000 00:00 0 
+7f0ca7ffc000-7f0ca8000000 ---p 00000000 00:00 0 
+7f0ca8000000-7f0ca8021000 rw-p 00000000 00:00 0 
+7f0ca8021000-7f0cac000000 ---p 00000000 00:00 0 
+7f0cac000000-7f0cac021000 rw-p 00000000 00:00 0 
+7f0cac021000-7f0cb0000000 ---p 00000000 00:00 0 
+7f0cb0000000-7f0cb0021000 rw-p 00000000 00:00 0 
+7f0cb0021000-7f0cb4000000 ---p 00000000 00:00 0 
+7f0cb4000000-7f0cb4021000 rw-p 00000000 00:00 0 
+7f0cb4021000-7f0cb8000000 ---p 00000000 00:00 0 
+7f0cb8000000-7f0cb8021000 rw-p 00000000 00:00 0 
+7f0cb8021000-7f0cbc000000 ---p 00000000 00:00 0 
+7f0cbc000000-7f0cbc021000 rw-p 00000000 00:00 0 
+7f0cbc021000-7f0cc0000000 ---p 00000000 00:00 0 
+7f0cc0000000-7f0cc02f1000 rw-p 00000000 00:00 0 
+7f0cc02f1000-7f0cc4000000 ---p 00000000 00:00 0 
+7f0cc409f000-7f0cc40a2000 ---p 00000000 00:00 0 
+7f0cc40a2000-7f0cc43a0000 rw-p 00000000 00:00 0 
+7f0cc43a0000-7f0ccc000000 rw-p 00000000 00:00 0 
+7f0ccc000000-7f0ccc021000 rw-p 00000000 00:00 0 
+7f0ccc021000-7f0cd0000000 ---p 00000000 00:00 0 
+7f0cd00d1000-7f0cd00d4000 ---p 00000000 00:00 0 
+7f0cd00d4000-7f0cd03d2000 rw-p 00000000 00:00 0 
+7f0cd03d2000-7f0cd04b7000 r-xp 00000000 08:06 8127346                    /tmp/sqlite-3.21.0-a3330d00-6c5e-45c0-9946-d79b9e83fefc-libsqlitejdbc.so
+7f0cd04b7000-7f0cd06b6000 ---p 000e5000 08:06 8127346                    /tmp/sqlite-3.21.0-a3330d00-6c5e-45c0-9946-d79b9e83fefc-libsqlitejdbc.so
+7f0cd06b6000-7f0cd06bb000 rw-p 000e4000 08:06 8127346                    /tmp/sqlite-3.21.0-a3330d00-6c5e-45c0-9946-d79b9e83fefc-libsqlitejdbc.so
+7f0cd06bb000-7f0cd06bc000 rw-p 00000000 00:00 0 
+7f0cd06bc000-7f0cd06bf000 ---p 00000000 00:00 0 
+7f0cd06bf000-7f0cd09bd000 rw-p 00000000 00:00 0 
+7f0cd09bd000-7f0cd0bbd000 rw-p 00000000 00:00 0 
+7f0cd0bbd000-7f0cd0dbd000 rw-p 00000000 00:00 0 
+7f0cd0e83000-7f0cd0e86000 ---p 00000000 00:00 0 
+7f0cd0e86000-7f0cd1184000 rw-p 00000000 00:00 0 
+7f0cd1184000-7f0cd1384000 rw-p 00000000 00:00 0 
+7f0cd138d000-7f0cd1392000 r--s 00098000 08:06 7223515                    /usr/local/java/jdk1.8.0_112/jre/lib/jsse.jar
+7f0cd1392000-7f0cd1592000 rw-p 00000000 00:00 0 
+7f0cd1592000-7f0cd15a5000 r--s 00345000 08:06 7223540                    /usr/local/java/jdk1.8.0_112/jre/lib/resources.jar
+7f0cd15a5000-7f0cd17a5000 rw-p 00000000 00:00 0 
+7f0cd17a5000-7f0cd17af000 r--s 00116000 08:06 9177035                    /usr/local/java/jdk1.8.0_112/jre/lib/ext/localedata.jar
+7f0cd17af000-7f0cd17cb000 r--s 00393000 08:06 9177038                    /usr/local/java/jdk1.8.0_112/jre/lib/ext/cldrdata.jar
+7f0cd17cb000-7f0cd19cb000 rw-p 00000000 00:00 0 
+7f0cd19cb000-7f0cd1bcb000 rw-p 00000000 00:00 0 
+7f0cd1bcb000-7f0cd1bdc000 r-xp 00000000 08:06 9176986                    /usr/local/java/jdk1.8.0_112/jre/lib/amd64/libnio.so
+7f0cd1bdc000-7f0cd1ddb000 ---p 00011000 08:06 9176986                    /usr/local/java/jdk1.8.0_112/jre/lib/amd64/libnio.so
+7f0cd1ddb000-7f0cd1ddc000 rw-p 00010000 08:06 9176986                    /usr/local/java/jdk1.8.0_112/jre/lib/amd64/libnio.so
+7f0cd1ddc000-7f0cd1fdc000 rw-p 00000000 00:00 0 
+7f0cd1fdc000-7f0cd1ff7000 r--s 001d3000 08:06 9177034                    /usr/local/java/jdk1.8.0_112/jre/lib/ext/nashorn.jar
+7f0cd1ff7000-7f0cd2000000 r-xp 00000000 08:06 9176997                    /usr/local/java/jdk1.8.0_112/jre/lib/amd64/libmanagement.so
+7f0cd2000000-7f0cd21ff000 ---p 00009000 08:06 9176997                    /usr/local/java/jdk1.8.0_112/jre/lib/amd64/libmanagement.so
+7f0cd21ff000-7f0cd2200000 rw-p 00008000 08:06 9176997                    /usr/local/java/jdk1.8.0_112/jre/lib/amd64/libmanagement.so
+7f0cd2200000-7f0cd2203000 ---p 00000000 00:00 0 
+7f0cd2203000-7f0cd2301000 rw-p 00000000 00:00 0 
+7f0cd2301000-7f0cd2317000 r-xp 00000000 08:06 9176961                    /usr/local/java/jdk1.8.0_112/jre/lib/amd64/libnet.so
+7f0cd2317000-7f0cd2517000 ---p 00016000 08:06 9176961                    /usr/local/java/jdk1.8.0_112/jre/lib/amd64/libnet.so
+7f0cd2517000-7f0cd2518000 rw-p 00016000 08:06 9176961                    /usr/local/java/jdk1.8.0_112/jre/lib/amd64/libnet.so
+7f0cd2518000-7f0cd2519000 r--s 0000f000 08:06 4719416                    /home/elma/.m2/repository/org/json/json/20131018/json-20131018.jar
+7f0cd2519000-7f0cd251b000 r--s 0000b000 08:06 4719413                    /home/elma/.m2/repository/org/apache/oltu/oauth2/org.apache.oltu.oauth2.common/1.0.0/org.apache.oltu.oauth2.common-1.0.0.jar
+7f0cd251b000-7f0cd251d000 r--s 00006000 08:06 4719411                    /home/elma/.m2/repository/org/apache/oltu/oauth2/org.apache.oltu.oauth2.authzserver/1.0.0/org.apache.oltu.oauth2.authzserver-1.0.0.jar
+7f0cd251d000-7f0cd2526000 r--s 0004d000 08:06 4718941                    /home/elma/.m2/repository/org/flywaydb/flyway-core/4.0/flyway-core-4.0.jar
+7f0cd2526000-7f0cd252a000 r--s 00016000 08:06 4718939                    /home/elma/.m2/repository/javax/servlet/javax.servlet-api/4.0.0/javax.servlet-api-4.0.0.jar
+7f0cd252a000-7f0cd252c000 r--s 0000f000 08:06 4718935                    /home/elma/.m2/repository/javax/activation/activation/1.1.1/activation-1.1.1.jar
+7f0cd252c000-7f0cd2535000 r--s 00097000 08:06 4718930                    /home/elma/.m2/repository/com/sun/mail/javax.mail/1.6.0/javax.mail-1.6.0.jar
+7f0cd2535000-7f0cd253d000 r--s 0005f000 08:06 4718923                    /home/elma/.m2/repository/org/apache/velocity/velocity/1.6.2/velocity-1.6.2.jar
+7f0cd253d000-7f0cd2540000 r--s 0001b000 08:06 4718913                    /home/elma/.m2/repository/org/apache/struts/struts-tiles/1.3.8/struts-tiles-1.3.8.jar
+7f0cd2540000-7f0cd2545000 r--s 00039000 08:06 4718911                    /home/elma/.m2/repository/org/apache/struts/struts-taglib/1.3.8/struts-taglib-1.3.8.jar
+7f0cd2545000-7f0cd254b000 r--s 0004b000 08:06 4459092                    /home/elma/.m2/repository/org/apache/struts/struts-core/1.3.8/struts-core-1.3.8.jar
+7f0cd254b000-7f0cd254d000 r--s 00005000 08:06 4459073                    /home/elma/.m2/repository/sslext/sslext/1.2-0/sslext-1.2-0.jar
+7f0cd254d000-7f0cd254f000 r--s 0000e000 08:06 4458968                    /home/elma/.m2/repository/oro/oro/2.0.8/oro-2.0.8.jar
+7f0cd254f000-7f0cd2550000 r--s 0000c000 08:06 4458387                    /home/elma/.m2/repository/commons-logging/commons-logging/1.1/commons-logging-1.1.jar
+7f0cd2550000-7f0cd2552000 r--s 00014000 08:06 4458235                    /home/elma/.m2/repository/commons-chain/commons-chain/1.1/commons-chain-1.1.jar
+7f0cd2552000-7f0cd2556000 r--s 00020000 08:06 4458231                    /home/elma/.m2/repository/commons-digester/commons-digester/1.8/commons-digester-1.8.jar
+7f0cd2556000-7f0cd255b000 r--s 0002a000 08:06 4458224                    /home/elma/.m2/repository/commons-beanutils/commons-beanutils/1.7.0/commons-beanutils-1.7.0.jar
+7f0cd255b000-7f0cd2561000 r--s 0004f000 08:06 4458222                    /home/elma/.m2/repository/org/apache/velocity/velocity-tools/2.0/velocity-tools-2.0.jar
+7f0cd2561000-7f0cd2563000 r--s 00009000 08:06 4458217                    /home/elma/.m2/repository/org/slf4j/slf4j-api/1.7.25/slf4j-api-1.7.25.jar
+7f0cd2563000-7f0cd256b000 r--s 0006e000 08:06 4458215                    /home/elma/.m2/repository/org/apache/commons/commons-lang3/3.5/commons-lang3-3.5.jar
+7f0cd256b000-7f0cd2574000 r--s 00061000 08:06 4458210                    /home/elma/.m2/repository/org/apache/velocity/velocity-engine-core/2.0/velocity-engine-core-2.0.jar
+7f0cd2574000-7f0cd257f000 r--s 00053000 08:06 4458204                    /home/elma/.m2/repository/org/springframework/security/spring-security-web/4.2.3.RELEASE/spring-security-web-4.2.3.RELEASE.jar
+7f0cd257f000-7f0cd2584000 r--s 0003c000 08:06 4458199                    /home/elma/.m2/repository/org/springframework/spring-expression/4.3.9.RELEASE/spring-expression-4.3.9.RELEASE.jar
+7f0cd2584000-7f0cd2586000 r--s 00000000 08:06 4458183                    /home/elma/.m2/repository/aopalliance/aopalliance/1.0/aopalliance-1.0.jar
+7f0cd2586000-7f0cd2592000 r--s 00056000 08:06 4458180                    /home/elma/.m2/repository/org/springframework/security/spring-security-core/4.2.3.RELEASE/spring-security-core-4.2.3.RELEASE.jar
+7f0cd2592000-7f0cd2599000 r--s 00036000 08:06 4458176                    /home/elma/.m2/repository/org/springframework/spring-tx/5.0.3.RELEASE/spring-tx-5.0.3.RELEASE.jar
+7f0cd2599000-7f0cd25a5000 r--s 00094000 08:06 4458170                    /home/elma/.m2/repository/org/springframework/spring-beans/5.0.3.RELEASE/spring-beans-5.0.3.RELEASE.jar
+7f0cd25a5000-7f0cd25ae000 r--s 00057000 08:06 4458168                    /home/elma/.m2/repository/org/springframework/spring-jdbc/5.0.3.RELEASE/spring-jdbc-5.0.3.RELEASE.jar
+7f0cd25ae000-7f0cd25b8000 r--s 00061000 08:06 4458162                    /home/elma/.m2/repository/com/sun/jersey/jersey-core/1.19.4/jersey-core-1.19.4.jar
+7f0cd25b8000-7f0cd25b9000 r--s 00006000 08:06 4458159                    /home/elma/.m2/repository/org/codehaus/jackson/jackson-xc/1.9.2/jackson-xc-1.9.2.jar
+7f0cd25b9000-7f0cd25ba000 r--s 00004000 08:06 4458157                    /home/elma/.m2/repository/org/codehaus/jackson/jackson-jaxrs/1.9.2/jackson-jaxrs-1.9.2.jar
+7f0cd25ba000-7f0cd25c8000 r--s 000ad000 08:06 4458156                    /home/elma/.m2/repository/org/codehaus/jackson/jackson-mapper-asl/1.9.2/jackson-mapper-asl-1.9.2.jar
+7f0cd25c8000-7f0cd25cc000 r--s 00034000 08:06 4458151                    /home/elma/.m2/repository/org/codehaus/jackson/jackson-core-asl/1.9.2/jackson-core-asl-1.9.2.jar
+7f0cd25cc000-7f0cd25ce000 r--s 00004000 08:06 4458149                    /home/elma/.m2/repository/javax/xml/stream/stax-api/1.0-2/stax-api-1.0-2.jar
+7f0cd25ce000-7f0cd25d1000 r--s 00017000 08:06 4458148                    /home/elma/.m2/repository/javax/xml/bind/jaxb-api/2.2.2/jaxb-api-2.2.2.jar
+7f0cd25d1000-7f0cd25e4000 r--s 000c7000 08:06 4458146                    /home/elma/.m2/repository/com/sun/xml/bind/jaxb-impl/2.2.3-1/jaxb-impl-2.2.3-1.jar
+7f0cd25e4000-7f0cd25e6000 r--s 0000f000 08:06 4458142                    /home/elma/.m2/repository/org/codehaus/jettison/jettison/1.1/jettison-1.1.jar
+7f0cd25e6000-7f0cd25ea000 r--s 00025000 08:06 4458138                    /home/elma/.m2/repository/com/sun/jersey/jersey-json/1.19.4/jersey-json-1.19.4.jar
+7f0cd25ea000-7f0cd25ec000 r--s 00003000 08:06 4458137                    /home/elma/.m2/repository/com/sun/jersey/jersey-grizzly/1.19.4/jersey-grizzly-1.19.4.jar
+7f0cd25ec000-7f0cd25ee000 r--s 00018000 08:06 4458134                    /home/elma/.m2/repository/javax/servlet/servlet-api/2.5/servlet-api-2.5.jar
+7f0cd25ee000-7f0cd25f1000 r--s 00010000 08:06 4458132                    /home/elma/.m2/repository/com/sun/grizzly/grizzly-http-servlet/1.9.45/grizzly-http-servlet-1.9.45.jar
+7f0cd25f1000-7f0cd25f3000 r--s 0000c000 08:06 4458130                    /home/elma/.m2/repository/com/sun/grizzly/grizzly-lzma/1.9.45/grizzly-lzma-1.9.45.jar
+7f0cd25f3000-7f0cd25fb000 r--s 00075000 08:06 4458129                    /home/elma/.m2/repository/com/sun/grizzly/grizzly-utils/1.9.45/grizzly-utils-1.9.45.jar
+7f0cd25fb000-7f0cd25fc000 r--s 00004000 08:06 4458126                    /home/elma/.m2/repository/com/sun/grizzly/grizzly-portunif/1.9.45/grizzly-portunif-1.9.45.jar
+7f0cd25fc000-7f0cd25fd000 r--s 00002000 08:06 4458123                    /home/elma/.m2/repository/com/sun/grizzly/grizzly-rcm/1.9.45/grizzly-rcm-1.9.45.jar
+7f0cd25fd000-7f0cd2602000 r--s 00037000 08:06 4458121                    /home/elma/.m2/repository/com/sun/grizzly/grizzly-framework/1.9.45/grizzly-framework-1.9.45.jar
+7f0cd2602000-7f0cd2605000 r--s 0002b000 08:06 4458119                    /home/elma/.m2/repository/com/sun/grizzly/grizzly-http/1.9.45/grizzly-http-1.9.45.jar
+7f0cd2605000-7f0cd2618000 r--s 0010a000 08:06 4458117                    /home/elma/.m2/repository/com/sun/grizzly/grizzly-servlet-webserver/1.9.45/grizzly-servlet-webserver-1.9.45.jar
+7f0cd2618000-7f0cd261a000 r--s 00002000 08:06 4458115                    /home/elma/.m2/repository/com/sun/jersey/jersey-test-framework/jersey-test-framework-grizzly/1.19.4/jersey-test-framework-grizzly-1.19.4.jar
+7f0cd261a000-7f0cd261d000 r--s 0001e000 08:06 4458114                    /home/elma/.m2/repository/com/sun/jersey/jersey-client/1.19.4/jersey-client-1.19.4.jar
+7f0cd261d000-7f0cd2621000 r--s 0001c000 08:06 4458109                    /home/elma/.m2/repository/com/sun/jersey/jersey-servlet/1.19.4/jersey-servlet-1.19.4.jar
+7f0cd2621000-7f0cd2623000 r--s 00006000 08:06 4458104                    /home/elma/.m2/repository/com/sun/jersey/jersey-test-framework/jersey-test-framework-core/1.19.4/jersey-test-framework-core-1.19.4.jar
+7f0cd2623000-7f0cd263a000 r--s 001d2000 08:06 4458102                    /home/elma/.m2/repository/mysql/mysql-connector-java/6.0.6/mysql-connector-java-6.0.6.jar
+7f0cd263a000-7f0cd2644000 r--s 000ab000 08:06 4458100                    /home/elma/.m2/repository/org/javassist/javassist/3.22.0-GA/javassist-3.22.0-GA.jar
+7f0cd2644000-7f0cd2646000 r--s 00006000 08:06 4458098                    /home/elma/.m2/repository/org/hibernate/hibernate-java8/5.1.11.Final/hibernate-java8-5.1.11.Final.jar
+7f0cd2646000-7f0cd264a000 r--s 00028000 08:06 4458095                    /home/elma/.m2/repository/org/hibernate/hibernate-jpamodelgen/5.1.11.Final/hibernate-jpamodelgen-5.1.11.Final.jar
+7f0cd264a000-7f0cd264b000 r--s 00003000 08:06 4458093                    /home/elma/.m2/repository/org/apache/geronimo/specs/geronimo-jta_1.1_spec/1.1.1/geronimo-jta_1.1_spec-1.1.1.jar
+7f0cd264b000-7f0cd2650000 r--s 00017000 08:06 4458092                    /home/elma/.m2/repository/org/hibernate/javax/persistence/hibernate-jpa-2.1-api/1.0.0.Final/hibernate-jpa-2.1-api-1.0.0.Final.jar
+7f0cd2650000-7f0cd2653000 r--s 00010000 08:06 4458088                    /home/elma/.m2/repository/org/hibernate/common/hibernate-commons-annotations/5.0.1.Final/hibernate-commons-annotations-5.0.1.Final.jar
+7f0cd2653000-7f0cd2658000 r--s 00016000 08:06 4458087                    /home/elma/.m2/repository/xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2.jar
+7f0cd2658000-7f0cd265d000 r--s 00048000 08:06 4458084                    /home/elma/.m2/repository/dom4j/dom4j/1.6.1/dom4j-1.6.1.jar
+7f0cd265d000-7f0cd265f000 r--s 0000e000 08:06 4458083                    /home/elma/.m2/repository/com/fasterxml/classmate/1.3.0/classmate-1.3.0.jar
+7f0cd265f000-7f0cd2662000 r--s 0002b000 08:06 4458077                    /home/elma/.m2/repository/org/jboss/jandex/2.0.3.Final/jandex-2.0.3.Final.jar
+7f0cd2662000-7f0cd2667000 r--s 00068000 08:06 4458075                    /home/elma/.m2/repository/antlr/antlr/2.7.7/antlr-2.7.7.jar
+7f0cd2667000-7f0cd26d3000 r--s 0050e000 08:06 4458064                    /home/elma/.m2/repository/org/hibernate/hibernate-core/5.1.11.Final/hibernate-core-5.1.11.Final.jar
+7f0cd26d3000-7f0cd26d5000 r--s 0000f000 08:06 4458071                    /home/elma/.m2/repository/org/jboss/logging/jboss-logging/3.3.0.Final/jboss-logging-3.3.0.Final.jar
+7f0cd26d5000-7f0cd26e1000 r--s 00083000 08:06 4458066                    /home/elma/.m2/repository/org/hibernate/hibernate-entitymanager/5.1.11.Final/hibernate-entitymanager-5.1.11.Final.jar
+7f0cd26e1000-7f0cd26f3000 r--s 001d5000 08:06 4458069                    /home/elma/.m2/repository/com/unboundid/unboundid-ldapsdk/3.2.1/unboundid-ldapsdk-3.2.1.jar
+7f0cd26f3000-7f0cd26fc000 r--s 0005e000 08:06 4458062                    /home/elma/.m2/repository/com/novell/ldap/jldap/4.3/jldap-4.3.jar
+7f0cd26fc000-7f0cd27d3000 r--s 007aa000 08:06 5117944                    /home/elma/.m2/repository/net/sf/ehcache/ehcache/2.10.1/ehcache-2.10.1.jar
+7f0cd27d3000-7f0cd27d6000 r--s 00020000 08:06 5117943                    /home/elma/.m2/repository/org/hibernate/hibernate-ehcache/5.1.11.Final/hibernate-ehcache-5.1.11.Final.jar
+7f0cd27d6000-7f0cd27da000 r--s 00031000 08:06 5117940                    /home/elma/.m2/repository/commons-io/commons-io/2.6/commons-io-2.6.jar
+7f0cd27da000-7f0cd27e1000 r--s 00049000 08:06 5117938                    /home/elma/.m2/repository/org/apache/httpcomponents/httpcore/4.4.7/httpcore-4.4.7.jar
+7f0cd27e1000-7f0cd27ee000 r--s 000b2000 08:06 4719602                    /home/elma/.m2/repository/org/apache/httpcomponents/httpclient/4.5.4/httpclient-4.5.4.jar
+7f0cd27ee000-7f0cd27ef000 r--s 0000a000 08:06 4719598                    /home/elma/.m2/repository/asm/asm/3.3.1/asm-3.3.1.jar
+7f0cd27ef000-7f0cd27f0000 r--s 0000c000 08:06 4719596                    /home/elma/.m2/repository/org/eclipse/jetty/jetty-xml/9.4.8.v20171121/jetty-xml-9.4.8.v20171121.jar
+7f0cd27f0000-7f0cd27f3000 r--s 0001d000 08:06 4719595                    /home/elma/.m2/repository/org/eclipse/jetty/jetty-webapp/9.4.8.v20171121/jetty-webapp-9.4.8.v20171121.jar
+7f0cd27f3000-7f0cd27f5000 r--s 00015000 08:06 4719594                    /home/elma/.m2/repository/org/eclipse/jetty/jetty-security/9.4.8.v20171121/jetty-security-9.4.8.v20171121.jar
+7f0cd27f5000-7f0cd27f7000 r--s 00019000 08:06 4719427                    /home/elma/.m2/repository/org/eclipse/jetty/jetty-servlet/9.4.8.v20171121/jetty-servlet-9.4.8.v20171121.jar
+7f0cd27f7000-7f0cd27fa000 r--s 0001d000 08:06 4719425                    /home/elma/.m2/repository/org/eclipse/jetty/jetty-io/9.4.8.v20171121/jetty-io-9.4.8.v20171121.jar
+7f0cd27fa000-7f0cd2802000 r--s 0006e000 08:06 4719423                    /home/elma/.m2/repository/org/eclipse/jetty/jetty-util/9.4.8.v20171121/jetty-util-9.4.8.v20171121.jar
+7f0cd2802000-7f0cd2805000 r--s 00026000 08:06 4719422                    /home/elma/.m2/repository/org/eclipse/jetty/jetty-http/9.4.8.v20171121/jetty-http-9.4.8.v20171121.jar
+7f0cd2805000-7f0cd280d000 r--s 00087000 08:06 4719419                    /home/elma/.m2/repository/org/eclipse/jetty/jetty-server/9.4.8.v20171121/jetty-server-9.4.8.v20171121.jar
+7f0cd280d000-7f0cd281a000 r--s 00083000 08:06 4719417                    /home/elma/.m2/repository/commons-collections/commons-collections/3.2.2/commons-collections-3.2.2.jar
+7f0cd281a000-7f0cd2833000 r--s 001bf000 08:06 4719409                    /home/elma/.m2/repository/org/aspectj/aspectjweaver/1.8.13/aspectjweaver-1.8.13.jar
+7f0cd2833000-7f0cd2836000 r--s 00008000 08:06 4719408                    /home/elma/.m2/repository/org/springframework/spring-aspects/5.0.3.RELEASE/spring-aspects-5.0.3.RELEASE.jar
+7f0cd2836000-7f0cd2840000 r--s 0004f000 08:06 4719406                    /home/elma/.m2/repository/org/springframework/spring-aop/5.0.3.RELEASE/spring-aop-5.0.3.RELEASE.jar
+7f0cd2840000-7f0cd284e000 r--s 00083000 08:06 4719392                    /home/elma/.m2/repository/org/springframework/spring-test/5.0.3.RELEASE/spring-test-5.0.3.RELEASE.jar
+7f0cd284e000-7f0cd2852000 r--s 00026000 08:06 4719401                    /home/elma/.m2/repository/org/springframework/spring-context-support/5.0.3.RELEASE/spring-context-support-5.0.3.RELEASE.jar
+7f0cd2852000-7f0cd286c000 r--s 000ed000 08:06 4719397                    /home/elma/.m2/repository/org/springframework/spring-context/5.0.3.RELEASE/spring-context-5.0.3.RELEASE.jar
+7f0cd286c000-7f0cd2870000 r--s 0002a000 08:06 4719395                    /home/elma/.m2/repository/org/springframework/spring-orm/5.0.3.RELEASE/spring-orm-5.0.3.RELEASE.jar
+7f0cd2870000-7f0cd2871000 r--s 0000c000 08:06 4719393                    /home/elma/.m2/repository/org/springframework/spring-asm/3.1.4.RELEASE/spring-asm-3.1.4.RELEASE.jar
+7f0cd2871000-7f0cd288b000 r--s 00116000 08:06 4719391                    /home/elma/.m2/repository/org/springframework/spring-web/5.0.3.RELEASE/spring-web-5.0.3.RELEASE.jar
+7f0cd288b000-7f0cd288c000 r--s 00003000 08:06 4458175                    /home/elma/.m2/repository/org/springframework/spring-jcl/5.0.3.RELEASE/spring-jcl-5.0.3.RELEASE.jar
+7f0cd288c000-7f0cd28a4000 r--s 00111000 08:06 4458173                    /home/elma/.m2/repository/org/springframework/spring-core/5.0.3.RELEASE/spring-core-5.0.3.RELEASE.jar
+7f0cd28a4000-7f0cd28a8000 r--s 0000f000 08:06 4719385                    /home/elma/.m2/repository/com/google/code/findbugs/annotations/2.0.1/annotations-2.0.1.jar
+7f0cd28a8000-7f0cd28ab000 r--s 0001d000 08:06 4719388                    /home/elma/.m2/repository/org/reflections/reflections/0.9.10/reflections-0.9.10.jar
+7f0cd28ab000-7f0cd28ac000 r--s 0000c000 08:06 5247086                    /home/elma/.m2/repository/commons-cli/commons-cli/1.3.1/commons-cli-1.3.1.jar
+7f0cd28ac000-7f0cd28ae000 r--s 00007000 08:06 5247058                    /home/elma/.m2/repository/com/fasterxml/jackson/module/jackson-module-jaxb-annotations/2.9.1/jackson-module-jaxb-annotations-2.9.1.jar
+7f0cd28ae000-7f0cd28af000 r--s 00007000 08:06 5247050                    /home/elma/.m2/repository/com/fasterxml/jackson/jaxrs/jackson-jaxrs-base/2.9.1/jackson-jaxrs-base-2.9.1.jar
+7f0cd28af000-7f0cd28b0000 r--s 00003000 08:06 5247049                    /home/elma/.m2/repository/com/fasterxml/jackson/jaxrs/jackson-jaxrs-json-provider/2.9.1/jackson-jaxrs-json-provider-2.9.1.jar
+7f0cd28b0000-7f0cd28b4000 r--s 00019000 08:06 5247036                    /home/elma/.m2/repository/javax/ws/rs/javax.ws.rs-api/2.0.1/javax.ws.rs-api-2.0.1.jar
+7f0cd28b4000-7f0cd28b8000 r--s 0000c000 08:06 5247021                    /home/elma/.m2/repository/javax/validation/validation-api/1.1.0.Final/validation-api-1.1.0.Final.jar
+7f0cd28b8000-7f0cd28bc000 r--s 00022000 08:06 5246359                    /home/elma/.m2/repository/org/glassfish/jersey/core/jersey-client/2.15/jersey-client-2.15.jar
+7f0cd28bc000-7f0cd28d1000 r--s 000ce000 08:06 5246346                    /home/elma/.m2/repository/org/glassfish/jersey/core/jersey-server/2.15/jersey-server-2.15.jar
+7f0cd28d1000-7f0cd28d2000 r--s 00004000 08:06 5246343                    /home/elma/.m2/repository/org/glassfish/hk2/osgi-resource-locator/1.0.1/osgi-resource-locator-1.0.1.jar
+7f0cd28d2000-7f0cd28d5000 r--s 00027000 08:06 5245839                    /home/elma/.m2/repository/org/glassfish/hk2/hk2-locator/2.4.0-b06/hk2-locator-2.4.0-b06.jar
+7f0cd28d5000-7f0cd28d7000 r--s 00002000 08:06 5245836                    /home/elma/.m2/repository/org/glassfish/hk2/external/aopalliance-repackaged/2.4.0-b06/aopalliance-repackaged-2.4.0-b06.jar
+7f0cd28d7000-7f0cd28da000 r--s 00013000 08:06 5245830                    /home/elma/.m2/repository/org/glassfish/hk2/hk2-utils/2.4.0-b06/hk2-utils-2.4.0-b06.jar
+7f0cd28da000-7f0cd28df000 r--s 00026000 08:06 5245817                    /home/elma/.m2/repository/org/glassfish/hk2/hk2-api/2.4.0-b06/hk2-api-2.4.0-b06.jar
+7f0cd28df000-7f0cd28f6000 r--s 000d4000 08:06 5245804                    /home/elma/.m2/repository/org/glassfish/jersey/bundles/repackaged/jersey-guava/2.15/jersey-guava-2.15.jar
+7f0cd28f6000-7f0cd28f8000 r--s 00005000 08:06 5245802                    /home/elma/.m2/repository/javax/annotation/javax.annotation-api/1.2/javax.annotation-api-1.2.jar
+7f0cd28f8000-7f0cd2907000 r--s 000a3000 08:06 5245795                    /home/elma/.m2/repository/org/glassfish/jersey/core/jersey-common/2.15/jersey-common-2.15.jar
+7f0cd2907000-7f0cd2918000 r--s 000c6000 08:06 5245776                    /home/elma/.m2/repository/org/glassfish/grizzly/grizzly-framework/2.3.16/grizzly-framework-2.3.16.jar
+7f0cd2918000-7f0cd291d000 r--s 0004c000 08:06 5245775                    /home/elma/.m2/repository/org/glassfish/grizzly/grizzly-http/2.3.16/grizzly-http-2.3.16.jar
+7f0cd291d000-7f0cd2923000 r--s 0003f000 08:06 5245758                    /home/elma/.m2/repository/org/glassfish/grizzly/grizzly-http-server/2.3.16/grizzly-http-server-2.3.16.jar
+7f0cd2923000-7f0cd2924000 r--s 00001000 08:06 5245754                    /home/elma/.m2/repository/org/glassfish/hk2/external/javax.inject/2.4.0-b06/javax.inject-2.4.0-b06.jar
+7f0cd2924000-7f0cd2926000 r--s 00005000 08:06 5118143                    /home/elma/.m2/repository/org/glassfish/jersey/containers/jersey-container-grizzly2-http/2.15/jersey-container-grizzly2-http-2.15.jar
+7f0cd2926000-7f0cd2928000 r--s 00001000 08:06 5118141                    /home/elma/.m2/repository/net/sf/jsr107cache/jsr107cache/1.0/jsr107cache-1.0.jar
+7f0cd2928000-7f0cd2938000 r--s 00167000 08:06 5118139                    /home/elma/.m2/repository/org/apache/lucene/lucene-analyzers-common/5.0.0/lucene-analyzers-common-5.0.0.jar
+7f0cd2938000-7f0cd293b000 r--s 00019000 08:06 5118138                    /home/elma/.m2/repository/org/apache/lucene/lucene-sandbox/5.0.0/lucene-sandbox-5.0.0.jar
+7f0cd293b000-7f0cd2941000 r--s 0002c000 08:06 5118135                    /home/elma/.m2/repository/org/apache/lucene/lucene-queries/5.0.0/lucene-queries-5.0.0.jar
+7f0cd2941000-7f0cd294a000 r--s 00057000 08:06 5118133                    /home/elma/.m2/repository/org/apache/lucene/lucene-queryparser/5.0.0/lucene-queryparser-5.0.0.jar
+7f0cd294a000-7f0cd296e000 r--s 001fd000 08:06 5118131                    /home/elma/.m2/repository/org/apache/lucene/lucene-core/5.0.0/lucene-core-5.0.0.jar
+7f0cd296e000-7f0cd2979000 r--s 0008b000 08:06 5118130                    /home/elma/.m2/repository/c3p0/c3p0/0.9.1.2/c3p0-0.9.1.2.jar
+7f0cd2979000-7f0cd297b000 r--s 00000000 08:06 5118126                    /home/elma/.m2/repository/org/slf4j/jul-to-slf4j/1.7.25/jul-to-slf4j-1.7.25.jar
+7f0cd297b000-7f0cd297c000 r--s 00005000 08:06 5118119                    /home/elma/.m2/repository/org/apache/logging/log4j/log4j-slf4j-impl/2.10.0/log4j-slf4j-impl-2.10.0.jar
+7f0cd297c000-7f0cd299d000 r--s 00166000 08:06 5118117                    /home/elma/.m2/repository/org/apache/logging/log4j/log4j-core/2.10.0/log4j-core-2.10.0.jar
+7f0cd299d000-7f0cd29a3000 r--s 00039000 08:06 5118115                    /home/elma/.m2/repository/org/apache/logging/log4j/log4j-api/2.10.0/log4j-api-2.10.0.jar
+7f0cd29a3000-7f0cd29a5000 r--s 0000b000 08:06 4719383                    /home/elma/.m2/repository/net/minidev/json-smart/1.1.1/json-smart-1.1.1.jar
+7f0cd29a5000-7f0cd29a6000 r--s 00000000 08:06 4719381                    /home/elma/.m2/repository/net/jcip/jcip-annotations/1.0/jcip-annotations-1.0.jar
+7f0cd29a6000-7f0cd29ad000 r--s 00039000 08:06 4719379                    /home/elma/.m2/repository/commons-codec/commons-codec/1.7/commons-codec-1.7.jar
+7f0cd29ad000-7f0cd29d5000 r--s 001a3000 08:06 4719378                    /home/elma/.m2/repository/org/bouncycastle/bcprov-jdk16/1.46/bcprov-jdk16-1.46.jar
+7f0cd29d5000-7f0cd29d8000 r--s 00012000 08:06 4719375                    /home/elma/.m2/repository/com/nimbusds/nimbus-jose-jwt/2.10.1/nimbus-jose-jwt-2.10.1.jar
+7f0cd29d8000-7f0cd29d9000 r--s 00004000 08:06 4719374                    /home/elma/.m2/repository/org/mindrot/jbcrypt/0.4/jbcrypt-0.4.jar
+7f0cd29d9000-7f0cd29dd000 r--s 0002a000 08:06 4719364                    /home/elma/.m2/repository/commons-validator/commons-validator/1.6/commons-validator-1.6.jar
+7f0cd29dd000-7f0cd29e0000 r--s 0001d000 08:06 4719362                    /home/elma/.m2/repository/org/apache/commons/commons-pool2/2.5.0/commons-pool2-2.5.0.jar
+7f0cd29e0000-7f0cd29e3000 r--s 0002b000 08:06 4719360                    /home/elma/.m2/repository/org/apache/commons/commons-dbcp2/2.2.0/commons-dbcp2-2.2.0.jar
+7f0cd29e3000-7f0cd29e8000 r--s 00659000 08:06 4719358                    /home/elma/.m2/repository/org/xerial/sqlite-jdbc/3.21.0/sqlite-jdbc-3.21.0.jar
+7f0cd29e8000-7f0cd29ec000 r--s 00024000 08:06 5508303                    /home/elma/.m2/repository/org/codehaus/woodstox/stax2-api/3.1.4/stax2-api-3.1.4.jar
+7f0cd29ec000-7f0cd29f1000 r--s 00073000 08:06 5508301                    /home/elma/.m2/repository/org/codehaus/woodstox/woodstox-core-lgpl/4.4.1/woodstox-core-lgpl-4.4.1.jar
+7f0cd29f1000-7f0cd29f3000 r--s 0000f000 08:06 5508271                    /home/elma/.m2/repository/eu/clarin/sru/fcs/fcs-ql/0.1/fcs-ql-0.1.jar
+7f0cd29f3000-7f0cd29f5000 r--s 00017000 08:06 5508269                    /home/elma/.m2/repository/eu/clarin/sru/sru-server/1.8.0/sru-server-1.8.0.jar
+7f0cd29f5000-7f0cd29f9000 r--s 0001e000 08:06 5508258                    /home/elma/.m2/repository/eu/clarin/sru/fcs/fcs-simple-endpoint/1.3.0/fcs-simple-endpoint-1.3.0.jar
+7f0cd29f9000-7f0cd2a01000 r--s 00066000 08:06 4719619                    /home/elma/.m2/repository/log4j/apache-log4j-extras/1.2.17/apache-log4j-extras-1.2.17.jar
+7f0cd2a01000-7f0cd2a03000 r--s 00008000 08:06 5508241                    /home/elma/.m2/repository/org/z3950/zing/cql-java/1.12/cql-java-1.12.jar
+7f0cd2a03000-7f0cd2a08000 r--s 00041000 08:06 5118220                    /home/elma/.m2/repository/commons-lang/commons-lang/2.6/commons-lang-2.6.jar
+7f0cd2a08000-7f0cd2a1a000 r--s 00133000 08:06 5247059                    /home/elma/.m2/repository/com/fasterxml/jackson/core/jackson-databind/2.9.1/jackson-databind-2.9.1.jar
+7f0cd2a1a000-7f0cd2a1d000 r--s 0000e000 08:06 5247064                    /home/elma/.m2/repository/com/fasterxml/jackson/core/jackson-annotations/2.9.1/jackson-annotations-2.9.1.jar
+7f0cd2a1d000-7f0cd2a21000 r--s 0004b000 08:06 5247065                    /home/elma/.m2/repository/com/fasterxml/jackson/core/jackson-core/2.9.1/jackson-core-2.9.1.jar
+7f0cd2a21000-7f0cd2a4b000 r--s 001e9000 08:06 4719389                    /home/elma/.m2/repository/com/google/guava/guava/15.0/guava-15.0.jar
+7f0cd2a4b000-7f0cd2a4e000 r--s 00022000 08:06 5508294                    /home/elma/.m2/repository/org/antlr/stringtemplate/3.2.1/stringtemplate-3.2.1.jar
+7f0cd2a4e000-7f0cd2a51000 r--s 00026000 08:06 5508279                    /home/elma/.m2/repository/org/antlr/antlr-runtime/3.5/antlr-runtime-3.5.jar
+7f0cd2a51000-7f0cd2a55000 r--s 00036000 08:06 5508277                    /home/elma/.m2/repository/org/antlr/ST4/4.0.7/ST4-4.0.7.jar
+7f0cd2a55000-7f0cd2a56000 r--s 00002000 08:06 5508275                    /home/elma/.m2/repository/org/antlr/antlr4-annotations/4.2/antlr4-annotations-4.2.jar
+7f0cd2a56000-7f0cd2a60000 r--s 0008c000 08:06 5508273                    /home/elma/.m2/repository/org/antlr/antlr4/4.2/antlr4-4.2.jar
+7f0cd2a60000-7f0cd2a62000 r--s 00001000 08:06 5382084                    /home/elma/.m2/repository/org/sonatype/plexus/plexus-build-api/0.0.7/plexus-build-api-0.0.7.jar
+7f0cd2a62000-7f0cd2a64000 r--s 00005000 08:06 5382060                    /home/elma/.m2/repository/org/codehaus/plexus/plexus-compiler-api/2.2/plexus-compiler-api-2.2.jar
+7f0cd2a64000-7f0cd2a66000 r--s 00008000 08:06 5245505                    /home/elma/.m2/repository/classworlds/classworlds/1.1-alpha-2/classworlds-1.1-alpha-2.jar
+7f0cd2a66000-7f0cd2a6d000 r--s 00029000 08:06 5245472                    /home/elma/.m2/repository/org/codehaus/plexus/plexus-container-default/1.0-alpha-9-stable-1/plexus-container-default-1.0-alpha-9-stable-1.jar
+7f0cd2a6d000-7f0cd2a71000 r--s 00034000 08:06 5247246                    /home/elma/.m2/repository/org/codehaus/plexus/plexus-utils/1.5.15/plexus-utils-1.5.15.jar
+7f0cd2a71000-7f0cd2a73000 r--s 0000b000 08:06 5382080                    /home/elma/.m2/repository/org/codehaus/plexus/plexus-interpolation/1.11/plexus-interpolation-1.11.jar
+7f0cd2a73000-7f0cd2a75000 r--s 00006000 08:06 5382078                    /home/elma/.m2/repository/org/apache/maven/maven-plugin-registry/2.2.1/maven-plugin-registry-2.2.1.jar
+7f0cd2a75000-7f0cd2a7d000 r--s 00049000 08:06 5382077                    /home/elma/.m2/repository/backport-util-concurrent/backport-util-concurrent/3.1/backport-util-concurrent-3.1.jar
+7f0cd2a7d000-7f0cd2a7f000 r--s 0000b000 08:06 5382076                    /home/elma/.m2/repository/org/apache/maven/wagon/wagon-provider-api/1.0-beta-6/wagon-provider-api-1.0-beta-6.jar
+7f0cd2a7f000-7f0cd2a81000 r--s 00005000 08:06 5382061                    /home/elma/.m2/repository/org/apache/maven/maven-repository-metadata/2.2.1/maven-repository-metadata-2.2.1.jar
+7f0cd2a81000-7f0cd2a83000 r--s 0000f000 08:06 5382059                    /home/elma/.m2/repository/org/apache/maven/maven-artifact-manager/2.2.1/maven-artifact-manager-2.2.1.jar
+7f0cd2a83000-7f0cd2a85000 r--s 00007000 08:06 5382049                    /home/elma/.m2/repository/org/apache/maven/maven-profile/2.2.1/maven-profile-2.2.1.jar
+7f0cd2a85000-7f0cd2a86000 r--s 0000b000 08:06 5247261                    /home/elma/.m2/repository/org/apache/maven/maven-settings/2.2.1/maven-settings-2.2.1.jar
+7f0cd2a86000-7f0cd2a8a000 r--s 00023000 08:06 5247259                    /home/elma/.m2/repository/org/apache/maven/maven-project/2.2.1/maven-project-2.2.1.jar
+7f0cd2a8a000-7f0cd2a8c000 r--s 00003000 08:06 5770228                    /home/elma/.m2/repository/org/sonatype/sisu/inject/guice-plexus-lifecycles/2.3.0/guice-plexus-lifecycles-2.3.0.jar
+7f0cd2a8c000-7f0cd2a8e000 r--s 00003000 08:06 5770225                    /home/elma/.m2/repository/org/sonatype/sisu/inject/guice-plexus-scanners/2.3.0/guice-plexus-scanners-2.3.0.jar
+7f0cd2a8e000-7f0cd2a90000 r--s 00005000 08:06 5770222                    /home/elma/.m2/repository/org/sonatype/sisu/inject/guice-plexus-binders/2.3.0/guice-plexus-binders-2.3.0.jar
+7f0cd2a90000-7f0cd2a92000 r--s 00002000 08:06 5770220                    /home/elma/.m2/repository/org/sonatype/sisu/inject/guice-plexus-locators/2.3.0/guice-plexus-locators-2.3.0.jar
+7f0cd2a92000-7f0cd2a94000 r--s 00001000 08:06 5770218                    /home/elma/.m2/repository/org/sonatype/sisu/inject/guice-plexus-converters/2.3.0/guice-plexus-converters-2.3.0.jar
+7f0cd2a94000-7f0cd2a96000 r--s 00002000 08:06 5770216                    /home/elma/.m2/repository/org/sonatype/sisu/inject/guice-plexus-metadata/2.3.0/guice-plexus-metadata-2.3.0.jar
+7f0cd2a96000-7f0cd2a98000 r--s 00000000 08:06 5770214                    /home/elma/.m2/repository/org/sonatype/sisu/inject/guice-bean-converters/2.3.0/guice-bean-converters-2.3.0.jar
+7f0cd2a98000-7f0cd2a9a000 r--s 00013000 08:06 5770212                    /home/elma/.m2/repository/org/sonatype/sisu/inject/guice-bean-scanners/2.3.0/guice-bean-scanners-2.3.0.jar
+7f0cd2a9a000-7f0cd2a9b000 r--s 00001000 08:06 5380525                    /home/elma/.m2/repository/javax/annotation/jsr250-api/1.0/jsr250-api-1.0.jar
+7f0cd2a9b000-7f0cd2a9e000 r--s 00008000 08:06 5380199                    /home/elma/.m2/repository/javax/enterprise/cdi-api/1.0/cdi-api-1.0.jar
+7f0cd2a9e000-7f0cd2aa0000 r--s 00009000 08:06 5770210                    /home/elma/.m2/repository/org/sonatype/sisu/inject/guice-bean-binders/2.3.0/guice-bean-binders-2.3.0.jar
+7f0cd2aa0000-7f0cd2aa3000 r--s 0000b000 08:06 5770208                    /home/elma/.m2/repository/org/sonatype/sisu/inject/guice-bean-locators/2.3.0/guice-bean-locators-2.3.0.jar
+7f0cd2aa3000-7f0cd2aa5000 r--s 0000e000 08:06 5770204                    /home/elma/.m2/repository/org/sonatype/sisu/inject/guice-bean-reflect/2.3.0/guice-bean-reflect-2.3.0.jar
+7f0cd2aa5000-7f0cd2ab1000 r--s 00083000 08:06 5247279                    /home/elma/.m2/repository/org/sonatype/sisu/sisu-guice/3.1.0/sisu-guice-3.1.0.jar
+7f0cd2ab1000-7f0cd2ab2000 r--s 00000000 08:06 5247277                    /home/elma/.m2/repository/javax/inject/javax.inject/1/javax.inject-1.jar
+7f0cd2ab2000-7f0cd2ab7000 r--s 00019000 08:06 5770198                    /home/elma/.m2/repository/org/sonatype/sisu/inject/guice-plexus-shim/2.3.0/guice-plexus-shim-2.3.0.jar
+7f0cd2ab7000-7f0cd2ab9000 r--s 00004000 08:06 5770188                    /home/elma/.m2/repository/org/sonatype/sisu/inject/guice-bean-containers/2.3.0/guice-bean-containers-2.3.0.jar
+7f0cd2ab9000-7f0cd2ad8000 r--s 00152000 08:06 5247258                    /home/elma/.m2/repository/org/sonatype/sisu/sisu-guava/0.9.9/sisu-guava-0.9.9.jar
+7f0cd2ad8000-7f0cd2ae0000 r--s 00050000 08:06 5247257                    /home/elma/.m2/repository/org/sonatype/sisu/sisu-guice/3.1.0/sisu-guice-3.1.0-no_aop.jar
+7f0cd2ae0000-7f0cd2ae7000 r--s 00040000 08:06 5247256                    /home/elma/.m2/repository/org/sonatype/sisu/sisu-inject-bean/2.3.0/sisu-inject-bean-2.3.0.jar
+7f0cd2ae7000-7f0cd2ae9000 r--s 0000a000 08:06 5247251                    /home/elma/.m2/repository/org/codehaus/plexus/plexus-classworlds/2.4/plexus-classworlds-2.4.jar
+7f0cd2ae9000-7f0cd2aea000 ---p 00000000 00:00 0 
+7f0cd2aea000-7f0cd2bea000 rw-p 00000000 00:00 0 
+7f0cd2bea000-7f0cd2bed000 ---p 00000000 00:00 0 
+7f0cd2bed000-7f0cd2ceb000 rw-p 00000000 00:00 0 
+7f0cd2ceb000-7f0cd2cee000 ---p 00000000 00:00 0 
+7f0cd2cee000-7f0cd2dec000 rw-p 00000000 00:00 0 
+7f0cd2dec000-7f0cd2def000 ---p 00000000 00:00 0 
+7f0cd2def000-7f0cd2eed000 rw-p 00000000 00:00 0 
+7f0cd2eed000-7f0cd2ef0000 ---p 00000000 00:00 0 
+7f0cd2ef0000-7f0cd2fee000 rw-p 00000000 00:00 0 
+7f0cd2fee000-7f0cd2ff1000 ---p 00000000 00:00 0 
+7f0cd2ff1000-7f0cd30ef000 rw-p 00000000 00:00 0 
+7f0cd30ef000-7f0cd30f2000 ---p 00000000 00:00 0 
+7f0cd30f2000-7f0cd31f0000 rw-p 00000000 00:00 0 
+7f0cd31f0000-7f0cd31f3000 ---p 00000000 00:00 0 
+7f0cd31f3000-7f0cd32f1000 rw-p 00000000 00:00 0 
+7f0cd32f1000-7f0cd32f5000 r-xp 00000000 08:06 9177002                    /usr/local/java/jdk1.8.0_112/jre/lib/amd64/libdt_socket.so
+7f0cd32f5000-7f0cd34f4000 ---p 00004000 08:06 9177002                    /usr/local/java/jdk1.8.0_112/jre/lib/amd64/libdt_socket.so
+7f0cd34f4000-7f0cd34f5000 rw-p 00003000 08:06 9177002                    /usr/local/java/jdk1.8.0_112/jre/lib/amd64/libdt_socket.so
+7f0cd34f5000-7f0cd34f8000 ---p 00000000 00:00 0 
+7f0cd34f8000-7f0cd35f6000 rw-p 00000000 00:00 0 
+7f0cd35f6000-7f0cd35f9000 ---p 00000000 00:00 0 
+7f0cd35f9000-7f0cd36f7000 rw-p 00000000 00:00 0 
+7f0cd36f7000-7f0cd36fa000 ---p 00000000 00:00 0 
+7f0cd36fa000-7f0cd37f8000 rw-p 00000000 00:00 0 
+7f0cd37f8000-7f0cd37f9000 ---p 00000000 00:00 0 
+7f0cd37f9000-7f0cd4000000 rw-p 00000000 00:00 0 
+7f0cd4000000-7f0cd4021000 rw-p 00000000 00:00 0 
+7f0cd4021000-7f0cd8000000 ---p 00000000 00:00 0 
+7f0cd8000000-7f0cd8021000 rw-p 00000000 00:00 0 
+7f0cd8021000-7f0cdc000000 ---p 00000000 00:00 0 
+7f0cdc000000-7f0cdc021000 rw-p 00000000 00:00 0 
+7f0cdc021000-7f0ce0000000 ---p 00000000 00:00 0 
+7f0ce0000000-7f0ce0001000 r--s 00001000 08:06 5770193                    /home/elma/.m2/repository/org/sonatype/sisu/inject/guice-bean-inject/2.3.0/guice-bean-inject-2.3.0.jar
+7f0ce0001000-7f0ce0003000 r--s 00000000 08:06 5247250                    /home/elma/.m2/repository/org/codehaus/plexus/plexus-component-annotations/1.5.5/plexus-component-annotations-1.5.5.jar
+7f0ce0003000-7f0ce0009000 r--s 0002c000 08:06 5247247                    /home/elma/.m2/repository/org/sonatype/sisu/sisu-inject-plexus/2.3.0/sisu-inject-plexus-2.3.0.jar
+7f0ce0009000-7f0ce000b000 r--s 0000b000 08:06 5247245                    /home/elma/.m2/repository/org/apache/maven/maven-artifact/3.0.5/maven-artifact-3.0.5.jar
+7f0ce000b000-7f0ce001c000 r--s 0008a000 08:06 4719356                    /home/elma/.m2/repository/joda-time/joda-time/2.9.9/joda-time-2.9.9.jar
+7f0ce001c000-7f0ce0031000 r--s 00161000 08:06 4719355                    /home/elma/.m2/repository/org/projectlombok/lombok/1.16.20/lombok-1.16.20.jar
+7f0ce0031000-7f0ce0054000 r--s 0016b000 08:06 4719343                    /home/elma/.m2/repository/com/sun/jersey/jersey-bundle/1.19.4/jersey-bundle-1.19.4.jar
+7f0ce0054000-7f0ce1000000 rw-p 00000000 00:00 0 
+7f0ce1000000-7f0ce2070000 rwxp 00000000 00:00 0 
+7f0ce2070000-7f0cf0000000 ---p 00000000 00:00 0 
+7f0cf0000000-7f0cf2f05000 rw-p 00000000 00:00 0 
+7f0cf2f05000-7f0cf4000000 ---p 00000000 00:00 0 
+7f0cf4000000-7f0cf4002000 r--s 00026000 08:06 5247242                    /home/elma/.m2/repository/org/apache/maven/maven-model/3.0.5/maven-model-3.0.5.jar
+7f0cf4002000-7f0cf4004000 r--s 0000b000 08:06 5247243                    /home/elma/.m2/repository/org/apache/maven/maven-plugin-api/3.0.5/maven-plugin-api-3.0.5.jar
+7f0cf4004000-7f0cf400a000 r--s 00044000 08:06 5247239                    /home/elma/.m2/repository/org/antlr/antlr4-runtime/4.5.1/antlr4-runtime-4.5.1.jar
+7f0cf400a000-7f0cf400c000 r--s 00009000 08:06 4719352                    /home/elma/.m2/repository/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar
+7f0cf400c000-7f0cf4015000 r--s 0006f000 08:06 4719346                    /home/elma/.m2/repository/log4j/log4j/1.2.17/log4j-1.2.17.jar
+7f0cf4015000-7f0cf4165000 rw-p 00000000 00:00 0 
+7f0cf4165000-7f0cf433e000 r--s 03d2c000 08:06 7223520                    /usr/local/java/jdk1.8.0_112/jre/lib/rt.jar
+7f0cf433e000-7f0cf4b7a000 rw-p 00000000 00:00 0 
+7f0cf4b7a000-7f0cf4b7b000 ---p 00000000 00:00 0 
+7f0cf4b7b000-7f0cf4c7b000 rw-p 00000000 00:00 0 
+7f0cf4c7b000-7f0cf4c7c000 ---p 00000000 00:00 0 
+7f0cf4c7c000-7f0cf4d7c000 rw-p 00000000 00:00 0 
+7f0cf4d7c000-7f0cf4d7d000 ---p 00000000 00:00 0 
+7f0cf4d7d000-7f0cf4e7d000 rw-p 00000000 00:00 0 
+7f0cf4e7d000-7f0cf4e7e000 ---p 00000000 00:00 0 
+7f0cf4e7e000-7f0cf4fc3000 rw-p 00000000 00:00 0 
+7f0cf4fc3000-7f0cf54ad000 ---p 00000000 00:00 0 
+7f0cf54ad000-7f0cf54f2000 rw-p 00000000 00:00 0 
+7f0cf54f2000-7f0cf59db000 ---p 00000000 00:00 0 
+7f0cf59db000-7f0cf5a8b000 rw-p 00000000 00:00 0 
+7f0cf5a8b000-7f0cf5c73000 ---p 00000000 00:00 0 
+7f0cf5c73000-7f0cf5cb6000 rw-p 00000000 00:00 0 
+7f0cf5cb6000-7f0cf6034000 ---p 00000000 00:00 0 
+7f0cf6034000-7f0cf604e000 r-xp 00000000 08:06 9176984                    /usr/local/java/jdk1.8.0_112/jre/lib/amd64/libzip.so
+7f0cf604e000-7f0cf624e000 ---p 0001a000 08:06 9176984                    /usr/local/java/jdk1.8.0_112/jre/lib/amd64/libzip.so
+7f0cf624e000-7f0cf624f000 rw-p 0001a000 08:06 9176984                    /usr/local/java/jdk1.8.0_112/jre/lib/amd64/libzip.so
+7f0cf624f000-7f0cf625a000 r-xp 00000000 08:06 3539147                    /lib/x86_64-linux-gnu/libnss_files-2.23.so
+7f0cf625a000-7f0cf6459000 ---p 0000b000 08:06 3539147                    /lib/x86_64-linux-gnu/libnss_files-2.23.so
+7f0cf6459000-7f0cf645a000 r--p 0000a000 08:06 3539147                    /lib/x86_64-linux-gnu/libnss_files-2.23.so
+7f0cf645a000-7f0cf645b000 rw-p 0000b000 08:06 3539147                    /lib/x86_64-linux-gnu/libnss_files-2.23.so
+7f0cf645b000-7f0cf6461000 rw-p 00000000 00:00 0 
+7f0cf6461000-7f0cf646c000 r-xp 00000000 08:06 3539155                    /lib/x86_64-linux-gnu/libnss_nis-2.23.so
+7f0cf646c000-7f0cf666b000 ---p 0000b000 08:06 3539155                    /lib/x86_64-linux-gnu/libnss_nis-2.23.so
+7f0cf666b000-7f0cf666c000 r--p 0000a000 08:06 3539155                    /lib/x86_64-linux-gnu/libnss_nis-2.23.so
+7f0cf666c000-7f0cf666d000 rw-p 0000b000 08:06 3539155                    /lib/x86_64-linux-gnu/libnss_nis-2.23.so
+7f0cf666d000-7f0cf6683000 r-xp 00000000 08:06 3539039                    /lib/x86_64-linux-gnu/libnsl-2.23.so
+7f0cf6683000-7f0cf6882000 ---p 00016000 08:06 3539039                    /lib/x86_64-linux-gnu/libnsl-2.23.so
+7f0cf6882000-7f0cf6883000 r--p 00015000 08:06 3539039                    /lib/x86_64-linux-gnu/libnsl-2.23.so
+7f0cf6883000-7f0cf6884000 rw-p 00016000 08:06 3539039                    /lib/x86_64-linux-gnu/libnsl-2.23.so
+7f0cf6884000-7f0cf6886000 rw-p 00000000 00:00 0 
+7f0cf6886000-7f0cf688e000 r-xp 00000000 08:06 3539138                    /lib/x86_64-linux-gnu/libnss_compat-2.23.so
+7f0cf688e000-7f0cf6a8d000 ---p 00008000 08:06 3539138                    /lib/x86_64-linux-gnu/libnss_compat-2.23.so
+7f0cf6a8d000-7f0cf6a8e000 r--p 00007000 08:06 3539138                    /lib/x86_64-linux-gnu/libnss_compat-2.23.so
+7f0cf6a8e000-7f0cf6a8f000 rw-p 00008000 08:06 3539138                    /lib/x86_64-linux-gnu/libnss_compat-2.23.so
+7f0cf6a8f000-7f0cf6ee5000 r--p 00000000 08:06 5899730                    /usr/lib/locale/locale-archive
+7f0cf6ee5000-7f0cf6ee7000 r-xp 00000000 08:06 9176992                    /usr/local/java/jdk1.8.0_112/jre/lib/amd64/libnpt.so
+7f0cf6ee7000-7f0cf70e7000 ---p 00002000 08:06 9176992                    /usr/local/java/jdk1.8.0_112/jre/lib/amd64/libnpt.so
+7f0cf70e7000-7f0cf70e8000 rw-p 00002000 08:06 9176992                    /usr/local/java/jdk1.8.0_112/jre/lib/amd64/libnpt.so
+7f0cf70e8000-7f0cf7121000 r-xp 00000000 08:06 9176958                    /usr/local/java/jdk1.8.0_112/jre/lib/amd64/libjdwp.so
+7f0cf7121000-7f0cf7321000 ---p 00039000 08:06 9176958                    /usr/local/java/jdk1.8.0_112/jre/lib/amd64/libjdwp.so
+7f0cf7321000-7f0cf7322000 rw-p 00039000 08:06 9176958                    /usr/local/java/jdk1.8.0_112/jre/lib/amd64/libjdwp.so
+7f0cf7322000-7f0cf7323000 rw-p 00000000 00:00 0 
+7f0cf7323000-7f0cf734e000 r-xp 00000000 08:06 9177011                    /usr/local/java/jdk1.8.0_112/jre/lib/amd64/libjava.so
+7f0cf734e000-7f0cf754d000 ---p 0002b000 08:06 9177011                    /usr/local/java/jdk1.8.0_112/jre/lib/amd64/libjava.so
+7f0cf754d000-7f0cf754f000 rw-p 0002a000 08:06 9177011                    /usr/local/java/jdk1.8.0_112/jre/lib/amd64/libjava.so
+7f0cf754f000-7f0cf755c000 r-xp 00000000 08:06 9176962                    /usr/local/java/jdk1.8.0_112/jre/lib/amd64/libverify.so
+7f0cf755c000-7f0cf775b000 ---p 0000d000 08:06 9176962                    /usr/local/java/jdk1.8.0_112/jre/lib/amd64/libverify.so
+7f0cf775b000-7f0cf775d000 rw-p 0000c000 08:06 9176962                    /usr/local/java/jdk1.8.0_112/jre/lib/amd64/libverify.so
+7f0cf775d000-7f0cf7764000 r-xp 00000000 08:06 3539159                    /lib/x86_64-linux-gnu/librt-2.23.so
+7f0cf7764000-7f0cf7963000 ---p 00007000 08:06 3539159                    /lib/x86_64-linux-gnu/librt-2.23.so
+7f0cf7963000-7f0cf7964000 r--p 00006000 08:06 3539159                    /lib/x86_64-linux-gnu/librt-2.23.so
+7f0cf7964000-7f0cf7965000 rw-p 00007000 08:06 3539159                    /lib/x86_64-linux-gnu/librt-2.23.so
+7f0cf7965000-7f0cf7a6d000 r-xp 00000000 08:06 3538973                    /lib/x86_64-linux-gnu/libm-2.23.so
+7f0cf7a6d000-7f0cf7c6c000 ---p 00108000 08:06 3538973                    /lib/x86_64-linux-gnu/libm-2.23.so
+7f0cf7c6c000-7f0cf7c6d000 r--p 00107000 08:06 3538973                    /lib/x86_64-linux-gnu/libm-2.23.so
+7f0cf7c6d000-7f0cf7c6e000 rw-p 00108000 08:06 3538973                    /lib/x86_64-linux-gnu/libm-2.23.so
+7f0cf7c6e000-7f0cf893c000 r-xp 00000000 08:06 9177015                    /usr/local/java/jdk1.8.0_112/jre/lib/amd64/server/libjvm.so
+7f0cf893c000-7f0cf8b3c000 ---p 00cce000 08:06 9177015                    /usr/local/java/jdk1.8.0_112/jre/lib/amd64/server/libjvm.so
+7f0cf8b3c000-7f0cf8c15000 rw-p 00cce000 08:06 9177015                    /usr/local/java/jdk1.8.0_112/jre/lib/amd64/server/libjvm.so
+7f0cf8c15000-7f0cf8c60000 rw-p 00000000 00:00 0 
+7f0cf8c60000-7f0cf8e20000 r-xp 00000000 08:06 3539120                    /lib/x86_64-linux-gnu/libc-2.23.so
+7f0cf8e20000-7f0cf9020000 ---p 001c0000 08:06 3539120                    /lib/x86_64-linux-gnu/libc-2.23.so
+7f0cf9020000-7f0cf9024000 r--p 001c0000 08:06 3539120                    /lib/x86_64-linux-gnu/libc-2.23.so
+7f0cf9024000-7f0cf9026000 rw-p 001c4000 08:06 3539120                    /lib/x86_64-linux-gnu/libc-2.23.so
+7f0cf9026000-7f0cf902a000 rw-p 00000000 00:00 0 
+7f0cf902a000-7f0cf902d000 r-xp 00000000 08:06 3539125                    /lib/x86_64-linux-gnu/libdl-2.23.so
+7f0cf902d000-7f0cf922c000 ---p 00003000 08:06 3539125                    /lib/x86_64-linux-gnu/libdl-2.23.so
+7f0cf922c000-7f0cf922d000 r--p 00002000 08:06 3539125                    /lib/x86_64-linux-gnu/libdl-2.23.so
+7f0cf922d000-7f0cf922e000 rw-p 00003000 08:06 3539125                    /lib/x86_64-linux-gnu/libdl-2.23.so
+7f0cf922e000-7f0cf9243000 r-xp 00000000 08:06 9176231                    /usr/local/java/jdk1.8.0_112/lib/amd64/jli/libjli.so
+7f0cf9243000-7f0cf9443000 ---p 00015000 08:06 9176231                    /usr/local/java/jdk1.8.0_112/lib/amd64/jli/libjli.so
+7f0cf9443000-7f0cf9444000 rw-p 00015000 08:06 9176231                    /usr/local/java/jdk1.8.0_112/lib/amd64/jli/libjli.so
+7f0cf9444000-7f0cf945c000 r-xp 00000000 08:06 3539119                    /lib/x86_64-linux-gnu/libpthread-2.23.so
+7f0cf945c000-7f0cf965b000 ---p 00018000 08:06 3539119                    /lib/x86_64-linux-gnu/libpthread-2.23.so
+7f0cf965b000-7f0cf965c000 r--p 00017000 08:06 3539119                    /lib/x86_64-linux-gnu/libpthread-2.23.so
+7f0cf965c000-7f0cf965d000 rw-p 00018000 08:06 3539119                    /lib/x86_64-linux-gnu/libpthread-2.23.so
+7f0cf965d000-7f0cf9661000 rw-p 00000000 00:00 0 
+7f0cf9661000-7f0cf9687000 r-xp 00000000 08:06 3539041                    /lib/x86_64-linux-gnu/ld-2.23.so
+7f0cf9687000-7f0cf968f000 r--s 00045000 08:06 4719350                    /home/elma/.m2/repository/junit/junit/4.12/junit-4.12.jar
+7f0cf968f000-7f0cf9760000 rw-p 00000000 00:00 0 
+7f0cf9760000-7f0cf9763000 ---p 00000000 00:00 0 
+7f0cf9763000-7f0cf9866000 rw-p 00000000 00:00 0 
+7f0cf9866000-7f0cf9867000 r--s 00005000 08:06 5245652                    /home/elma/.m2/repository/org/antlr/antlr4-maven-plugin/4.2/antlr4-maven-plugin-4.2.jar
+7f0cf9867000-7f0cf9868000 r--s 00002000 08:06 4719348                    /home/elma/.m2/repository/org/slf4j/slf4j-log4j12/1.7.25/slf4j-log4j12-1.7.25.jar
+7f0cf9868000-7f0cf986a000 r--s 00003000 08:06 4719344                    /home/elma/.m2/repository/com/sun/jersey/contribs/jersey-spring/1.19.4/jersey-spring-1.19.4.jar
+7f0cf986a000-7f0cf987a000 r--s 0009d000 08:06 4458111                    /home/elma/.m2/repository/com/sun/jersey/jersey-server/1.19.4/jersey-server-1.19.4.jar
+7f0cf987a000-7f0cf987c000 r--s 0000a000 08:06 4458165                    /home/elma/.m2/repository/javax/ws/rs/jsr311-api/1.1.1/jsr311-api-1.1.1.jar
+7f0cf987c000-7f0cf9884000 rw-s 00000000 08:06 8127328                    /tmp/hsperfdata_elma/31138
+7f0cf9884000-7f0cf9885000 rw-p 00000000 00:00 0 
+7f0cf9885000-7f0cf9886000 ---p 00000000 00:00 0 
+7f0cf9886000-7f0cf9887000 r--p 00025000 08:06 3539041                    /lib/x86_64-linux-gnu/ld-2.23.so
+7f0cf9887000-7f0cf9888000 rw-p 00026000 08:06 3539041                    /lib/x86_64-linux-gnu/ld-2.23.so
+7f0cf9888000-7f0cf9889000 rw-p 00000000 00:00 0 
+7ffd1af51000-7ffd1af78000 rw-p 00000000 00:00 0                          [stack]
+7ffd1afe6000-7ffd1afe9000 r--p 00000000 00:00 0                          [vvar]
+7ffd1afe9000-7ffd1afeb000 r-xp 00000000 00:00 0                          [vdso]
+ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0                  [vsyscall]
+
+VM Arguments:
+jvm_args: -agentlib:jdwp=transport=dt_socket,suspend=y,address=localhost:45788 -ea -Dfile.encoding=UTF-8 
+java_command: org.eclipse.jdt.internal.junit.runner.RemoteTestRunner -version 3 -port 38027 -testLoaderClass org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader -loaderpluginname org.eclipse.jdt.junit4.runtime -test de.ids_mannheim.korap.web.controller.OAuth2ControllerTest:testRequestTokenPasswordGrantNonNative
+java_class_path (initial): /home/elma/git/Kustvakt/full/target/test-classes:/home/elma/git/Kustvakt/full/target/classes:/home/elma/git/Kustvakt/core/target/classes:/home/elma/.m2/repository/com/sun/jersey/jersey-bundle/1.19.4/jersey-bundle-1.19.4.jar:/home/elma/.m2/repository/javax/ws/rs/jsr311-api/1.1.1/jsr311-api-1.1.1.jar:/home/elma/.m2/repository/com/sun/jersey/jersey-server/1.19.4/jersey-server-1.19.4.jar:/home/elma/.m2/repository/com/sun/jersey/contribs/jersey-spring/1.19.4/jersey-spring-1.19.4.jar:/home/elma/.m2/repository/org/slf4j/slf4j-log4j12/1.7.25/slf4j-log4j12-1.7.25.jar:/home/elma/.m2/repository/log4j/log4j/1.2.17/log4j-1.2.17.jar:/home/elma/.m2/repository/junit/junit/4.12/junit-4.12.jar:/home/elma/.m2/repository/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar:/home/elma/.m2/repository/org/projectlombok/lombok/1.16.20/lombok-1.16.20.jar:/home/elma/.m2/repository/joda-time/joda-time/2.9.9/joda-time-2.9.9.jar:/home/elma/git/Koral/target/classes:/home/elma/.m2/repository/org/antlr/antlr4-runtime/4.5.1/antlr4-runtime-4.5.1.jar:/home/elma/.m2/repository/org/antlr/antlr4-maven-plugin/4.2/antlr4-maven-plugin-4.2.jar:/home/elma/.m2/repository/org/apache/maven/maven-plugin-api/3.0.5/maven-plugin-api-3.0.5.jar:/home/elma/.m2/repository/org/apache/maven/maven-model/3.0.5/maven-model-3.0.5.jar:/home/elma/.m2/repository/org/apache/maven/maven-artifact/3.0.5/maven-artifact-3.0.5.jar:/home/elma/.m2/repository/org/sonatype/sisu/sisu-inject-plexus/2.3.0/sisu-inject-plexus-2.3.0.jar:/home/elma/.m2/repository/org/codehaus/plexus/plexus-component-annotations/1.5.5/plexus-component-annotations-1.5.5.jar:/home/elma/.m2/repository/org/codehaus/plexus/plexus-classworlds/2.4/plexus-classworlds-2.4.jar:/home/elma/.m2/repository/org/sonatype/sisu/sisu-inject-bean/2.3.0/sisu-inject-bean-2.3.0.jar:/home/elma/.m2/repository/org/sonatype/sisu/sisu-guice/3.1.0/sisu-guice-3.1.0-no_aop.jar:/home/elma/.m2/repository/org/sonatype/sisu/sisu-guava/0.9.9/sisu-guava-0.9.9.jar:/home/e
+Launcher Type: SUN_STANDARD
+
+Environment Variables:
+JAVA_HOME=/usr/local/java/jdk
+PATH=/home/elma/.perlbrew/libs/perl-5.22.3@korap/bin:/home/elma/perl5/perlbrew/bin:/home/elma/perl5/perlbrew/perls/perl-5.22.3/bin:/home/elma/bin:/home/elma/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/local/java:/snap/bin:/usr/local/java/jdk/bin:/usr/local/eclipse/default:/usr/sbin/openvpn:/usr/local/xml
+USERNAME=elma
+SHELL=/bin/bash
+DISPLAY=:1
+
+Signal Handlers:
+SIGSEGV: [libjvm.so+0xac7800], sa_mask[0]=11111111011111111101111111111110, sa_flags=SA_RESTART|SA_SIGINFO
+SIGBUS: [libjvm.so+0xac7800], sa_mask[0]=11111111011111111101111111111110, sa_flags=SA_RESTART|SA_SIGINFO
+SIGFPE: [libjvm.so+0x920990], sa_mask[0]=11111111011111111101111111111110, sa_flags=SA_RESTART|SA_SIGINFO
+SIGPIPE: [libjvm.so+0x920990], sa_mask[0]=11111111011111111101111111111110, sa_flags=SA_RESTART|SA_SIGINFO
+SIGXFSZ: [libjvm.so+0x920990], sa_mask[0]=11111111011111111101111111111110, sa_flags=SA_RESTART|SA_SIGINFO
+SIGILL: [libjvm.so+0x920990], sa_mask[0]=11111111011111111101111111111110, sa_flags=SA_RESTART|SA_SIGINFO
+SIGUSR1: SIG_DFL, sa_mask[0]=00000000000000000000000000000000, sa_flags=none
+SIGUSR2: [libjvm.so+0x9221d0], sa_mask[0]=00100000000000000000000000000000, sa_flags=SA_RESTART|SA_SIGINFO
+SIGHUP: [libjvm.so+0x9235d0], sa_mask[0]=11111111011111111101111111111110, sa_flags=SA_RESTART|SA_SIGINFO
+SIGINT: [libjvm.so+0x9235d0], sa_mask[0]=11111111011111111101111111111110, sa_flags=SA_RESTART|SA_SIGINFO
+SIGTERM: [libjvm.so+0x9235d0], sa_mask[0]=11111111011111111101111111111110, sa_flags=SA_RESTART|SA_SIGINFO
+SIGQUIT: [libjvm.so+0x9235d0], sa_mask[0]=11111111011111111101111111111110, sa_flags=SA_RESTART|SA_SIGINFO
+
+
+---------------  S Y S T E M  ---------------
+
+OS:DISTRIB_ID=Ubuntu
+DISTRIB_RELEASE=16.04
+DISTRIB_CODENAME=xenial
+DISTRIB_DESCRIPTION="Ubuntu 16.04.4 LTS"
+
+uname:Linux 4.4.0-119-generic #143-Ubuntu SMP Mon Apr 2 16:08:24 UTC 2018 x86_64
+libc:glibc 2.23 NPTL 2.23 
+rlimit: STACK 8192k, CORE 0k, NPROC 63149, NOFILE 1048576, AS infinity
+load average:2,23 1,04 1,04
+
+/proc/meminfo:
+MemTotal:       16295828 kB
+MemFree:          154036 kB
+MemAvailable:      32696 kB
+Buffers:             488 kB
+Cached:          1487772 kB
+SwapCached:            0 kB
+Active:         14455584 kB
+Inactive:        1231628 kB
+Active(anon):   14443064 kB
+Inactive(anon):  1222896 kB
+Active(file):      12520 kB
+Inactive(file):     8732 kB
+Unevictable:          64 kB
+Mlocked:              64 kB
+SwapTotal:             0 kB
+SwapFree:              0 kB
+Dirty:               316 kB
+Writeback:             0 kB
+AnonPages:      14200032 kB
+Mapped:           712548 kB
+Shmem:           1465908 kB
+Slab:             153108 kB
+SReclaimable:      74676 kB
+SUnreclaim:        78432 kB
+KernelStack:       26016 kB
+PageTables:       141888 kB
+NFS_Unstable:          0 kB
+Bounce:                0 kB
+WritebackTmp:          0 kB
+CommitLimit:     8147912 kB
+Committed_AS:   27012252 kB
+VmallocTotal:   34359738367 kB
+VmallocUsed:           0 kB
+VmallocChunk:          0 kB
+HardwareCorrupted:     0 kB
+AnonHugePages:         0 kB
+CmaTotal:              0 kB
+CmaFree:               0 kB
+HugePages_Total:       0
+HugePages_Free:        0
+HugePages_Rsvd:        0
+HugePages_Surp:        0
+Hugepagesize:       2048 kB
+DirectMap4k:      420984 kB
+DirectMap2M:    16220160 kB
+
+
+CPU:total 4 (2 cores per cpu, 2 threads per core) family 6 model 58 stepping 9, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, avx, aes, clmul, erms, ht, tsc, tscinvbit, tscinv
+
+/proc/cpuinfo:
+processor	: 0
+vendor_id	: GenuineIntel
+cpu family	: 6
+model		: 58
+model name	: Intel(R) Core(TM) i7-3520M CPU @ 2.90GHz
+stepping	: 9
+microcode	: 0x1f
+cpu MHz		: 3352.671
+cache size	: 4096 KB
+physical id	: 0
+siblings	: 4
+core id		: 0
+cpu cores	: 2
+apicid		: 0
+initial apicid	: 0
+fpu		: yes
+fpu_exception	: yes
+cpuid level	: 13
+wp		: yes
+flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm epb spec_ctrl retpoline kaiser tpr_shadow vnmi flexpriority ept vpid fsgsbase smep erms xsaveopt dtherm ida arat pln pts
+bugs		: cpu_meltdown spectre_v1 spectre_v2
+bogomips	: 5786.63
+clflush size	: 64
+cache_alignment	: 64
+address sizes	: 36 bits physical, 48 bits virtual
+power management:
+
+processor	: 1
+vendor_id	: GenuineIntel
+cpu family	: 6
+model		: 58
+model name	: Intel(R) Core(TM) i7-3520M CPU @ 2.90GHz
+stepping	: 9
+microcode	: 0x1f
+cpu MHz		: 3399.910
+cache size	: 4096 KB
+physical id	: 0
+siblings	: 4
+core id		: 0
+cpu cores	: 2
+apicid		: 1
+initial apicid	: 1
+fpu		: yes
+fpu_exception	: yes
+cpuid level	: 13
+wp		: yes
+flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm epb spec_ctrl retpoline kaiser tpr_shadow vnmi flexpriority ept vpid fsgsbase smep erms xsaveopt dtherm ida arat pln pts
+bugs		: cpu_meltdown spectre_v1 spectre_v2
+bogomips	: 5786.63
+clflush size	: 64
+cache_alignment	: 64
+address sizes	: 36 bits physical, 48 bits virtual
+power management:
+
+processor	: 2
+vendor_id	: GenuineIntel
+cpu family	: 6
+model		: 58
+model name	: Intel(R) Core(TM) i7-3520M CPU @ 2.90GHz
+stepping	: 9
+microcode	: 0x1f
+cpu MHz		: 3399.910
+cache size	: 4096 KB
+physical id	: 0
+siblings	: 4
+core id		: 1
+cpu cores	: 2
+apicid		: 2
+initial apicid	: 2
+fpu		: yes
+fpu_exception	: yes
+cpuid level	: 13
+wp		: yes
+flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm epb spec_ctrl retpoline kaiser tpr_shadow vnmi flexpriority ept vpid fsgsbase smep erms xsaveopt dtherm ida arat pln pts
+bugs		: cpu_meltdown spectre_v1 spectre_v2
+bogomips	: 5786.63
+clflush size	: 64
+cache_alignment	: 64
+address sizes	: 36 bits physical, 48 bits virtual
+power management:
+
+processor	: 3
+vendor_id	: GenuineIntel
+cpu family	: 6
+model		: 58
+model name	: Intel(R) Core(TM) i7-3520M CPU @ 2.90GHz
+stepping	: 9
+microcode	: 0x1f
+cpu MHz		: 3399.910
+cache size	: 4096 KB
+physical id	: 0
+siblings	: 4
+core id		: 1
+cpu cores	: 2
+apicid		: 3
+initial apicid	: 3
+fpu		: yes
+fpu_exception	: yes
+cpuid level	: 13
+wp		: yes
+flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm epb spec_ctrl retpoline kaiser tpr_shadow vnmi flexpriority ept vpid fsgsbase smep erms xsaveopt dtherm ida arat pln pts
+bugs		: cpu_meltdown spectre_v1 spectre_v2
+bogomips	: 5786.63
+clflush size	: 64
+cache_alignment	: 64
+address sizes	: 36 bits physical, 48 bits virtual
+power management:
+
+
+
+Memory: 4k page, physical 16295828k(153076k free), swap 0k(0k free)
+
+vm_info: Java HotSpot(TM) 64-Bit Server VM (25.112-b15) for linux-amd64 JRE (1.8.0_112-b15), built on Sep 22 2016 21:10:53 by "java_re" with gcc 4.3.0 20080428 (Red Hat 4.3.0-8)
+
+time: Mon Apr 23 17:48:10 2018
+elapsed time: 12 seconds (0d 0h 0m 12s)
+
diff --git a/full/pom.xml b/full/pom.xml
index 5587931..0337795 100644
--- a/full/pom.xml
+++ b/full/pom.xml
@@ -283,6 +283,12 @@
 			<version>4.0</version>
 		</dependency>
 		
+		<!-- OAuth -->
+		<dependency>
+			<groupId>org.apache.oltu.oauth2</groupId>
+			<artifactId>org.apache.oltu.oauth2.authzserver</artifactId>
+			<version>1.0.0</version>
+		</dependency>
 	</dependencies>
 
 </project>
\ No newline at end of file
diff --git a/full/src/main/java/de/ids_mannheim/korap/authentication/KustvaktAuthenticationManager.java b/full/src/main/java/de/ids_mannheim/korap/authentication/KustvaktAuthenticationManager.java
index 991e8f4..1c22fea 100644
--- a/full/src/main/java/de/ids_mannheim/korap/authentication/KustvaktAuthenticationManager.java
+++ b/full/src/main/java/de/ids_mannheim/korap/authentication/KustvaktAuthenticationManager.java
@@ -44,7 +44,7 @@
 import de.ids_mannheim.korap.security.context.TokenContext;
 import de.ids_mannheim.korap.user.DemoUser;
 import de.ids_mannheim.korap.user.KorAPUser;
-import de.ids_mannheim.korap.user.ShibUser;
+import de.ids_mannheim.korap.user.ShibbolethUser;
 import de.ids_mannheim.korap.user.User;
 import de.ids_mannheim.korap.user.User.CorpusAccess;
 import de.ids_mannheim.korap.user.User.Location;
@@ -389,7 +389,7 @@
 						StatusCodes.LOGIN_FAILED, username);
 			}
 
-		} else if (unknown instanceof ShibUser) {
+		} else if (unknown instanceof ShibbolethUser) {
 			// todo
 		}
 		jlog.debug("Authentication done: "+unknown);
@@ -521,7 +521,7 @@
 			 * username); }
 			 */
 
-		} else if (unknown instanceof ShibUser) {
+		} else if (unknown instanceof ShibbolethUser) {
 			// todo
 		}
 
@@ -753,17 +753,20 @@
 	}
 
 	// todo:
-	private ShibUser createShibbUserAccount(Map<String, Object> attributes) throws KustvaktException {
+	private ShibbolethUser createShibbUserAccount(Map<String, Object> attributes) throws KustvaktException {
 		jlog.debug("creating shibboleth user account for user attr: {}", attributes);
 		Map<String, Object> safeMap = validator.validateMap(attributes);
 
 		// todo eppn non-unique.join with idp or use persistent_id as username
 		// identifier
-		ShibUser user = User.UserFactory.getShibInstance((String) safeMap.get(Attributes.EPPN),
-				(String) safeMap.get(Attributes.MAIL), (String) safeMap.get(Attributes.CN));
-		user.setAffiliation((String) safeMap.get(Attributes.EDU_AFFIL));
-		user.setAccountCreation(TimeUtils.getNow().getMillis());
+		// EM: disabled
+//		ShibbolethUser user = User.UserFactory.getShibInstance((String) safeMap.get(Attributes.EPPN),
+//				(String) safeMap.get(Attributes.MAIL), (String) safeMap.get(Attributes.CN));
+//		user.setAffiliation((String) safeMap.get(Attributes.EDU_AFFIL));
+//		user.setAccountCreation(TimeUtils.getNow().getMillis());
 
+		ShibbolethUser user = null;
+		
 		UserDetails d = new UserDetails();
 		d.read(attributes, true);
 
diff --git a/full/src/main/java/de/ids_mannheim/korap/dao/OAuth2ClientDao.java b/full/src/main/java/de/ids_mannheim/korap/dao/OAuth2ClientDao.java
index 6e75f65..e1759c4 100644
--- a/full/src/main/java/de/ids_mannheim/korap/dao/OAuth2ClientDao.java
+++ b/full/src/main/java/de/ids_mannheim/korap/dao/OAuth2ClientDao.java
@@ -6,7 +6,6 @@
 import javax.persistence.Query;
 import javax.persistence.criteria.CriteriaBuilder;
 import javax.persistence.criteria.CriteriaQuery;
-import javax.persistence.criteria.Predicate;
 import javax.persistence.criteria.Root;
 
 import org.springframework.stereotype.Repository;
@@ -27,8 +26,9 @@
     private EntityManager entityManager;
 
     public void registerClient (String id, String secretHashcode, String name,
-            OAuth2ClientType type, boolean isNative, String url, int urlHashCode,
-            String redirectURI, String registeredBy) throws KustvaktException {
+            OAuth2ClientType type, boolean isNative, String url,
+            int urlHashCode, String redirectURI, String registeredBy,
+            String description) throws KustvaktException {
         ParameterChecker.checkStringValue(id, "client id");
         ParameterChecker.checkStringValue(name, "client name");
         ParameterChecker.checkObjectValue(type, "client type");
@@ -46,6 +46,7 @@
         client.setUrlHashCode(urlHashCode);
         client.setRedirectURI(redirectURI);
         client.setRegisteredBy(registeredBy);
+        client.setDescription(description);
         entityManager.persist(client);
     }
 
@@ -68,7 +69,7 @@
         }
         catch (NoResultException e) {
             throw new KustvaktException(StatusCodes.CLIENT_NOT_FOUND,
-                    "Unknown client with "+clientId+".", "invalid_client");
+                    "Unknown client with " + clientId + ".", "invalid_client");
         }
         catch (Exception e) {
             throw new KustvaktException(StatusCodes.CLIENT_NOT_FOUND,
diff --git a/full/src/main/java/de/ids_mannheim/korap/entity/OAuth2Client.java b/full/src/main/java/de/ids_mannheim/korap/entity/OAuth2Client.java
index 760fc13..9efab11 100644
--- a/full/src/main/java/de/ids_mannheim/korap/entity/OAuth2Client.java
+++ b/full/src/main/java/de/ids_mannheim/korap/entity/OAuth2Client.java
@@ -37,11 +37,13 @@
     private String redirectURI;
     @Column(name = "registered_by")
     private String registeredBy;
+    private String description;
 
     @Override
     public String toString () {
-        return "id=" + id + ", secret=" + secret + ", type=" + type + ", name="
-                + name + ", url=" + url + ", redirectURI=" + redirectURI
-                + ", registeredBy=" + registeredBy;
+        return "id=" + id + ", name=" + name + ", secret=" + secret + ", type="
+                + type + ", isNative=" + isNative + ", url=" + url
+                + ", redirectURI=" + redirectURI + ", registeredBy="
+                + registeredBy + ", description=" + description;
     }
 }
diff --git a/full/src/main/java/de/ids_mannheim/korap/handlers/EntityDao.java b/full/src/main/java/de/ids_mannheim/korap/handlers/EntityDao.java
index fd3c1e8..fd7fdc2 100644
--- a/full/src/main/java/de/ids_mannheim/korap/handlers/EntityDao.java
+++ b/full/src/main/java/de/ids_mannheim/korap/handlers/EntityDao.java
@@ -1,21 +1,11 @@
 package de.ids_mannheim.korap.handlers;
 
-import de.ids_mannheim.korap.config.ParamFields;
-import de.ids_mannheim.korap.config.URIParam;
-import de.ids_mannheim.korap.exceptions.EmptyResultException;
-import de.ids_mannheim.korap.exceptions.KustvaktException;
-import de.ids_mannheim.korap.exceptions.StatusCodes;
-import de.ids_mannheim.korap.exceptions.DatabaseException;
-import de.ids_mannheim.korap.interfaces.EntityHandlerIface;
-import de.ids_mannheim.korap.interfaces.KustvaktBaseDaoInterface;
-import de.ids_mannheim.korap.interfaces.db.PersistenceClient;
-import de.ids_mannheim.korap.user.KorAPUser;
-import de.ids_mannheim.korap.user.ShibUser;
-import de.ids_mannheim.korap.user.DemoUser;
-import de.ids_mannheim.korap.user.User;
-import de.ids_mannheim.korap.user.User.UserFactory;
-import de.ids_mannheim.korap.utils.BooleanUtils;
-import de.ids_mannheim.korap.utils.TimeUtils;
+import java.sql.Date;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.dao.DataAccessException;
@@ -26,11 +16,19 @@
 import org.springframework.jdbc.support.GeneratedKeyHolder;
 import org.springframework.jdbc.support.KeyHolder;
 
-import java.sql.Date;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import de.ids_mannheim.korap.config.ParamFields;
+import de.ids_mannheim.korap.config.URIParam;
+import de.ids_mannheim.korap.exceptions.DatabaseException;
+import de.ids_mannheim.korap.exceptions.KustvaktException;
+import de.ids_mannheim.korap.exceptions.StatusCodes;
+import de.ids_mannheim.korap.interfaces.EntityHandlerIface;
+import de.ids_mannheim.korap.interfaces.KustvaktBaseDaoInterface;
+import de.ids_mannheim.korap.interfaces.db.PersistenceClient;
+import de.ids_mannheim.korap.user.KorAPUser;
+import de.ids_mannheim.korap.user.ShibbolethUser;
+import de.ids_mannheim.korap.user.User;
+import de.ids_mannheim.korap.utils.BooleanUtils;
+import de.ids_mannheim.korap.utils.TimeUtils;
 
 /* WKP: In computer software, a data access object (DAO) is an object that provides an abstract interface to some type 
  * of database or other persistence mechanism. By mapping application calls to the persistence layer, the DAO provides 
@@ -154,14 +152,14 @@
                     //                    "uri_expiration=:exp "
                     + "WHERE id=:id";
         }
-        else if (user instanceof ShibUser) {
-            ShibUser s = (ShibUser) user;
+        else if (user instanceof ShibbolethUser) {
+            ShibbolethUser s = (ShibbolethUser) user;
             //todo:
             //            np.addValue("ali", s.getAccountLink());
             np.addValue("ali", null);
             np.addValue("edu", s.getAffiliation());
             np.addValue("id", s.getId());
-            np.addValue("cn", s.getCn());
+            np.addValue("cn", s.getCommonName());
             np.addValue("mail", s.getMail());
 
             query = "UPDATE shibusers SET account_link=:ali"
@@ -225,8 +223,8 @@
 
             //fixme: still applicable?
         }
-        else if (user instanceof ShibUser) {
-            ShibUser s = (ShibUser) user;
+        else if (user instanceof ShibbolethUser) {
+            ShibbolethUser s = (ShibbolethUser) user;
 
             query = "INSERT INTO shibusers (username, type, account_link, account_creation "
                     + "eduPersonScopedAffiliation, cn, mail) "
@@ -237,7 +235,7 @@
             np.addValue("edu", s.getAffiliation());
             np.addValue("mail", s.getMail());
             np.addValue("type", user.getType());
-            np.addValue("cn", s.getCn());
+            np.addValue("cn", s.getCommonName());
             np.addValue("acr", System.currentTimeMillis());
 
             //todo: deprecate
diff --git a/full/src/main/java/de/ids_mannheim/korap/handlers/RowMapperFactory.java b/full/src/main/java/de/ids_mannheim/korap/handlers/RowMapperFactory.java
index d18ea69..39b7efa 100644
--- a/full/src/main/java/de/ids_mannheim/korap/handlers/RowMapperFactory.java
+++ b/full/src/main/java/de/ids_mannheim/korap/handlers/RowMapperFactory.java
@@ -6,7 +6,7 @@
 import de.ids_mannheim.korap.resources.ResourceFactory;
 import de.ids_mannheim.korap.config.Attributes;
 import de.ids_mannheim.korap.user.KorAPUser;
-import de.ids_mannheim.korap.user.ShibUser;
+import de.ids_mannheim.korap.user.ShibbolethUser;
 import de.ids_mannheim.korap.user.User;
 import org.springframework.jdbc.core.RowMapper;
 
@@ -39,9 +39,9 @@
                 case 0:
                     user = getKorAP(rs);
                     break;
-                case 1:
-                    user = getShib(rs);
-                    break;
+//                case 1:
+//                    user = getShib(rs);
+//                    break;
                 default:
                     user = User.UserFactory.getDemoUser();
                     user.setId(rs.getInt("id"));
@@ -71,13 +71,13 @@
         }
 
 
-        private ShibUser getShib (ResultSet rs) throws SQLException {
-            ShibUser user = User.UserFactory.getShibInstance(
-                    rs.getString(Attributes.USERNAME),
-                    rs.getString(Attributes.MAIL), rs.getString(Attributes.CN));
-            user.setId(rs.getInt(Attributes.ID));
-            return user;
-        }
+//        private ShibbolethUser getShib (ResultSet rs) throws SQLException {
+//            ShibbolethUser user = User.UserFactory.getShibInstance(
+//                    rs.getString(Attributes.USERNAME),
+//                    rs.getString(Attributes.MAIL), rs.getString(Attributes.CN));
+//            user.setId(rs.getInt(Attributes.ID));
+//            return user;
+//        }
 
     }
 
diff --git a/full/src/main/java/de/ids_mannheim/korap/oauth/ClientDeregistrationValidator.java b/full/src/main/java/de/ids_mannheim/korap/oauth/ClientDeregistrationValidator.java
new file mode 100644
index 0000000..60525b0
--- /dev/null
+++ b/full/src/main/java/de/ids_mannheim/korap/oauth/ClientDeregistrationValidator.java
@@ -0,0 +1,23 @@
+package de.ids_mannheim.korap.oauth;
+
+import javax.servlet.http.HttpServletRequest;
+
+import org.apache.oltu.oauth2.common.OAuth;
+import org.apache.oltu.oauth2.common.exception.OAuthProblemException;
+import org.apache.oltu.oauth2.common.utils.OAuthUtils;
+import org.apache.oltu.oauth2.common.validators.AbstractValidator;
+
+public class ClientDeregistrationValidator extends AbstractValidator<HttpServletRequest>{
+
+    public ClientDeregistrationValidator () {
+        enforceClientAuthentication = true;
+    }
+    
+    @Override
+    public void validateMethod (HttpServletRequest request)
+            throws OAuthProblemException {
+        if (!request.getMethod().equals(OAuth.HttpMethod.DELETE)) {
+            throw OAuthUtils.handleOAuthProblemException("Method not set to DELETE.");
+        }
+    }
+}
diff --git a/full/src/main/java/de/ids_mannheim/korap/oauth/OAuthDeregisterClientRequest.java b/full/src/main/java/de/ids_mannheim/korap/oauth/OAuthDeregisterClientRequest.java
new file mode 100644
index 0000000..88ae668
--- /dev/null
+++ b/full/src/main/java/de/ids_mannheim/korap/oauth/OAuthDeregisterClientRequest.java
@@ -0,0 +1,27 @@
+package de.ids_mannheim.korap.oauth;
+
+import javax.servlet.http.HttpServletRequest;
+
+import org.apache.oltu.oauth2.as.request.OAuthRequest;
+import org.apache.oltu.oauth2.common.exception.OAuthProblemException;
+import org.apache.oltu.oauth2.common.exception.OAuthSystemException;
+import org.apache.oltu.oauth2.common.utils.OAuthUtils;
+import org.apache.oltu.oauth2.common.validators.OAuthValidator;
+
+public class OAuthDeregisterClientRequest extends OAuthRequest {
+
+    public OAuthDeregisterClientRequest (HttpServletRequest request)
+            throws OAuthSystemException, OAuthProblemException {
+        super(request);
+    }
+
+    @Override
+    protected OAuthValidator<HttpServletRequest> initValidator ()
+            throws OAuthProblemException, OAuthSystemException {
+        validators.put("client_deregistration",
+                ClientDeregistrationValidator.class);
+        final Class<? extends OAuthValidator<HttpServletRequest>> clazz =
+                validators.get("client_deregistration");
+        return OAuthUtils.instantiateClass(clazz);
+    }
+}
diff --git a/full/src/main/java/de/ids_mannheim/korap/service/OAuth2AuthorizationService.java b/full/src/main/java/de/ids_mannheim/korap/service/OAuth2AuthorizationService.java
new file mode 100644
index 0000000..751c7d2
--- /dev/null
+++ b/full/src/main/java/de/ids_mannheim/korap/service/OAuth2AuthorizationService.java
@@ -0,0 +1,118 @@
+package de.ids_mannheim.korap.service;
+
+import javax.servlet.http.HttpServletRequest;
+
+import org.apache.oltu.oauth2.as.issuer.OAuthIssuer;
+import org.apache.oltu.oauth2.as.request.OAuthAuthzRequest;
+import org.apache.oltu.oauth2.as.response.OAuthASResponse;
+import org.apache.oltu.oauth2.common.error.OAuthError;
+import org.apache.oltu.oauth2.common.exception.OAuthSystemException;
+import org.apache.oltu.oauth2.common.message.OAuthResponse;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.sun.jersey.api.client.ClientResponse.Status;
+
+import de.ids_mannheim.korap.config.Attributes;
+import de.ids_mannheim.korap.entity.OAuth2Client;
+import de.ids_mannheim.korap.exceptions.KustvaktException;
+import de.ids_mannheim.korap.exceptions.StatusCodes;
+
+@Service
+public class OAuth2AuthorizationService {
+
+    @Autowired
+    private OAuth2ClientService clientService;
+    @Autowired
+    private OAuth2Service auth2Service;
+    @Autowired
+    private OAuthIssuer oauthIssuer;
+
+    public OAuthResponse requestAuthorizationCode (HttpServletRequest request,
+            OAuthAuthzRequest authzRequest, String authorization)
+            throws KustvaktException, OAuthSystemException {
+
+        String responseType = authzRequest.getResponseType();
+        if (responseType == null || responseType.isEmpty()) {
+            throw new KustvaktException(StatusCodes.MISSING_PARAMETER,
+                    "response_type is missing.",
+                    OAuthError.CodeResponse.INVALID_REQUEST);
+        }
+
+        OAuth2Client client;
+        try {
+            client = clientService.authenticateClient(
+                    authzRequest.getClientId(), authzRequest.getClientSecret());
+        }
+        catch (KustvaktException e) {
+            e.setEntity(OAuthError.CodeResponse.UNAUTHORIZED_CLIENT);
+            throw e;
+        }
+
+        String redirectUri = authzRequest.getRedirectURI();
+        boolean hasRedirectUri = hasRedirectUri(redirectUri);
+        redirectUri = verifyRedirectUri(client, hasRedirectUri, redirectUri);
+
+        auth2Service.authenticateUser(
+                authzRequest.getParam(Attributes.USERNAME),
+                authzRequest.getParam(Attributes.PASSWORD),
+                authzRequest.getScopes());
+
+        return OAuthASResponse
+                .authorizationResponse(request, Status.FOUND.getStatusCode())
+                .setCode(oauthIssuer.authorizationCode()).location(redirectUri)
+                .buildQueryMessage();
+    }
+
+
+    private boolean hasRedirectUri (String redirectURI) {
+        if (redirectURI != null && !redirectURI.isEmpty()) {
+            return true;
+        }
+        return false;
+    }
+
+    /** If the request contains a redirect_uri parameter, the server must confirm 
+     *  it is a valid redirect URI. 
+     *  
+     *  If there is no redirect_uri parameter in the request, and only one URI 
+     *  was registered, the server uses the redirect URL that was previously 
+     *  registered. 
+     *  
+     *  If no redirect URL has been registered, this is an error.
+     *  
+     * @param client an OAuth2Client
+     * @param hasRedirectUri true if request contains redirect_uri, false otherwise
+     * @param redirectUri the redirect_uri value
+     * @return a client's redirect URI
+     * @throws KustvaktException
+     */
+    private String verifyRedirectUri (OAuth2Client client,
+            boolean hasRedirectUri, String redirectUri)
+            throws KustvaktException {
+
+        String registeredUri = client.getRedirectURI();
+        if (hasRedirectUri) {
+            // check if the redirect URI the same as that in DB
+            if (!redirectUri.equals(registeredUri)) {
+                throw new KustvaktException(StatusCodes.INVALID_REDIRECT_URI,
+                        redirectUri + " is unknown",
+                        OAuthError.CodeResponse.INVALID_REQUEST);
+            }
+        }
+        else {
+            // check if there is a redirect URI in the DB
+            // This should not happened as it is required in client registration!
+            if (registeredUri != null && !registeredUri.isEmpty()) {
+                redirectUri = registeredUri;
+            }
+            else {
+                throw new KustvaktException(StatusCodes.MISSING_PARAMETER,
+                        "redirect_uri is required",
+                        OAuthError.CodeResponse.INVALID_REQUEST);
+            }
+        }
+
+        return redirectUri;
+    }
+}
diff --git a/full/src/main/java/de/ids_mannheim/korap/service/OAuth2ClientService.java b/full/src/main/java/de/ids_mannheim/korap/service/OAuth2ClientService.java
index 4072cf7..1089c45 100644
--- a/full/src/main/java/de/ids_mannheim/korap/service/OAuth2ClientService.java
+++ b/full/src/main/java/de/ids_mannheim/korap/service/OAuth2ClientService.java
@@ -8,14 +8,12 @@
 
 import org.apache.commons.validator.routines.UrlValidator;
 import org.apache.log4j.Logger;
+import org.apache.oltu.oauth2.as.request.OAuthRequest;
 import org.apache.oltu.oauth2.common.error.OAuthError;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import de.ids_mannheim.korap.authentication.http.AuthorizationData;
-import de.ids_mannheim.korap.authentication.http.HttpAuthorizationHandler;
 import de.ids_mannheim.korap.config.FullConfiguration;
-import de.ids_mannheim.korap.constant.AuthenticationScheme;
 import de.ids_mannheim.korap.constant.OAuth2ClientType;
 import de.ids_mannheim.korap.dao.AdminDao;
 import de.ids_mannheim.korap.dao.OAuth2ClientDao;
@@ -57,8 +55,6 @@
     @Autowired
     private EncryptionIface encryption;
     @Autowired
-    private HttpAuthorizationHandler authorizationHandler;
-    @Autowired
     private FullConfiguration config;
 
     public OAuth2ClientDto registerClient (OAuth2ClientJson clientJson,
@@ -101,7 +97,7 @@
             clientDao.registerClient(id, secretHashcode, clientJson.getName(),
                     clientJson.getType(), isNative, clientJson.getUrl(),
                     clientJson.getUrl().hashCode(), clientJson.getRedirectURI(),
-                    registeredBy);
+                    registeredBy, clientJson.getDescription());
         }
         catch (Exception e) {
             Throwable cause = e;
@@ -140,7 +136,8 @@
         }
         catch (URISyntaxException e) {
             throw new KustvaktException(StatusCodes.INVALID_ARGUMENT,
-                    "Invalid redirectURI: "+e.getMessage(), OAuthError.TokenResponse.INVALID_REQUEST);
+                    "Invalid redirectURI: " + e.getMessage(),
+                    OAuthError.TokenResponse.INVALID_REQUEST);
         }
         boolean isNative =
                 urlHost.equals(nativeHost) && uriHost.equals(nativeHost);
@@ -152,7 +149,7 @@
     public void deregisterPublicClient (String clientId, String username)
             throws KustvaktException {
 
-        OAuth2Client client = retrieveClientById(clientId);
+        OAuth2Client client = clientDao.retrieveClientById(clientId);
         if (adminDao.isAdmin(username)) {
             clientDao.deregisterClient(client);
         }
@@ -174,98 +171,46 @@
     }
 
 
-    public void deregisterConfidentialClient (String authorization,
-            String clientId) throws KustvaktException {
-        OAuth2Client client =
-                authenticateClientByBasicAuthorization(authorization, clientId);
+    public void deregisterConfidentialClient (OAuthRequest oAuthRequest)
+            throws KustvaktException {
+
+        OAuth2Client client = authenticateClient(oAuthRequest.getClientId(),
+                oAuthRequest.getClientSecret());
         clientDao.deregisterClient(client);
     }
 
-    public OAuth2Client authenticateClient (String authorization,
-            String clientId) throws KustvaktException {
-        OAuth2Client client;
-        if (authorization == null || authorization.isEmpty()) {
-            client = authenticateClientById(clientId);
-            if (client.getType().equals(OAuth2ClientType.CONFIDENTIAL)) {
-                throw new KustvaktException(
-                        StatusCodes.CLIENT_AUTHENTICATION_FAILED,
-                        "Client authentication using authorization header is required.",
-                        OAuthError.TokenResponse.INVALID_CLIENT);
-            }
-        }
-        else {
-            client = authenticateClientByBasicAuthorization(authorization,
-                    clientId);
-        }
-        return client;
-    }
+    public OAuth2Client authenticateClient (String clientId,
+            String clientSecret) throws KustvaktException {
 
-    public OAuth2Client authenticateClientById (String clientId)
-            throws KustvaktException {
-        if (clientId == null || clientId.equals("null") || clientId.isEmpty()) {
+        if (clientId == null || clientId.isEmpty()) {
             throw new KustvaktException(
                     StatusCodes.CLIENT_AUTHENTICATION_FAILED,
-                    "client_id is missing",
-                    OAuthError.TokenResponse.INVALID_REQUEST);
+                    "Missing parameters: client id", "invalid_request");
         }
-        else {
-            return retrieveClientById(clientId);
-        }
-    }
 
-    public OAuth2Client authenticateClientByBasicAuthorization (
-            String authorization, String clientId) throws KustvaktException {
-
-        if (authorization == null || authorization.isEmpty()) {
-            throw new KustvaktException(
-                    StatusCodes.CLIENT_AUTHENTICATION_FAILED,
-                    "Authorization header is not found.",
-                    OAuthError.TokenResponse.INVALID_CLIENT);
-        }
-        else {
-            AuthorizationData authData = authorizationHandler
-                    .parseAuthorizationHeaderValue(authorization);
-            if (authData.getAuthenticationScheme()
-                    .equals(AuthenticationScheme.BASIC)) {
-                authorizationHandler.parseBasicToken(authData);
-                return verifyClientCredentials(clientId, authData);
-            }
-            else {
+        OAuth2Client client = clientDao.retrieveClientById(clientId);
+        if (clientSecret == null || clientSecret.isEmpty()) {
+            if (client.getSecret() != null
+                    || client.getType().equals(OAuth2ClientType.CONFIDENTIAL)) {
                 throw new KustvaktException(
                         StatusCodes.CLIENT_AUTHENTICATION_FAILED,
-                        "Client authentication with " + authData
-                                .getAuthenticationScheme().displayName()
-                                + "is not supported",
-                        "invalid_client");
+                        "Missing parameters: client_secret", "invalid_request");
+            }
+            else
+                return client;
+        }
+        else {
+            if (client.getSecret() != null) {
+                if (encryption.checkHash(clientSecret, client.getSecret(),
+                        config.getPasscodeSaltField())) {
+                    return client;
+                }
             }
         }
+
+        throw new KustvaktException(StatusCodes.CLIENT_AUTHENTICATION_FAILED,
+                "Invalid client credentials",
+                OAuthError.TokenResponse.INVALID_CLIENT);
     }
 
-    private OAuth2Client verifyClientCredentials (String clientId,
-            AuthorizationData authData) throws KustvaktException {
-
-        OAuth2Client client = retrieveClientById(authData.getUsername());
-        // EM: not sure if this is necessary
-        if (clientId != null && !clientId.isEmpty()) {
-            if (!client.getId().equals(clientId)) {
-                throw new KustvaktException(
-                        StatusCodes.CLIENT_AUTHENTICATION_FAILED,
-                        "Invalid client credentials.",
-                        OAuthError.TokenResponse.INVALID_CLIENT);
-            }
-        }
-        if (!encryption.checkHash(authData.getPassword(), client.getSecret(),
-                config.getPasscodeSaltField())) {
-            throw new KustvaktException(
-                    StatusCodes.CLIENT_AUTHENTICATION_FAILED,
-                    "Invalid client credentials.",
-                    OAuthError.TokenResponse.INVALID_CLIENT);
-        }
-        return client;
-    }
-
-    public OAuth2Client retrieveClientById (String clientId)
-            throws KustvaktException {
-        return clientDao.retrieveClientById(clientId);
-    }
 }
diff --git a/full/src/main/java/de/ids_mannheim/korap/service/OAuth2Service.java b/full/src/main/java/de/ids_mannheim/korap/service/OAuth2Service.java
index 4ec5dac..9e8092b 100644
--- a/full/src/main/java/de/ids_mannheim/korap/service/OAuth2Service.java
+++ b/full/src/main/java/de/ids_mannheim/korap/service/OAuth2Service.java
@@ -4,15 +4,12 @@
 import java.util.Map;
 import java.util.Set;
 
-import javax.servlet.http.HttpServletResponse;
+import javax.ws.rs.core.Response.Status;
 
-import org.apache.oltu.oauth2.as.issuer.MD5Generator;
 import org.apache.oltu.oauth2.as.issuer.OAuthIssuer;
-import org.apache.oltu.oauth2.as.issuer.OAuthIssuerImpl;
-import org.apache.oltu.oauth2.as.request.OAuthTokenRequest;
+import org.apache.oltu.oauth2.as.request.AbstractOAuthTokenRequest;
 import org.apache.oltu.oauth2.as.response.OAuthASResponse;
 import org.apache.oltu.oauth2.common.error.OAuthError;
-import org.apache.oltu.oauth2.common.exception.OAuthProblemException;
 import org.apache.oltu.oauth2.common.exception.OAuthSystemException;
 import org.apache.oltu.oauth2.common.message.OAuthResponse;
 import org.apache.oltu.oauth2.common.message.types.GrantType;
@@ -36,12 +33,27 @@
     private FullConfiguration config;
     @Autowired
     private AuthenticationManagerIface authenticationManager;
+    @Autowired
+    private OAuthIssuer oauthIssuer;
 
     /** 
-     *  RFC 6749:
+     * OAuth2 describes various ways for requesting an access token. Kustvakt 
+     * supports:
+     * <ul>
+     * <li> Authorization code grant: obtains authorization from a third party
+     * application.
+     * </li>
+     * <li> Resource owner password grant: strictly for clients that are parts 
+     *   of KorAP. Clients use user credentials, e.g. Kalamar (front-end) with 
+     *   login form. 
+     * </li>
+     * <li> Client credentials grant: strictly for clients that are parts 
+     *   of KorAP. Clients access their own resources, not on behalf of a 
+     *   user.
+     * </li>
+     * </ul>  
      *  
-     *  If the client type is confidential or the client was issued client
-     *  credentials, the client MUST authenticate with the authorization server.
+     *  
      * @param request 
      *  
      * @param oAuthRequest
@@ -50,24 +62,25 @@
      * @throws KustvaktException
      * @throws OAuthSystemException
      */
-    public OAuthResponse requestAccessToken (OAuthTokenRequest oAuthRequest,
-            String authorization)
+    public OAuthResponse requestAccessToken (
+            AbstractOAuthTokenRequest oAuthRequest)
             throws KustvaktException, OAuthSystemException {
 
         String grantType = oAuthRequest.getGrantType();
 
         if (grantType.equals(GrantType.AUTHORIZATION_CODE.toString())) {
-            return requestAccessTokenWithAuthorizationCode(authorization,
+            return requestAccessTokenWithAuthorizationCode(
                     oAuthRequest.getCode(), oAuthRequest.getRedirectURI(),
-                    oAuthRequest.getClientId());
+                    oAuthRequest.getClientId(), oAuthRequest.getClientSecret());
         }
         else if (grantType.equals(GrantType.PASSWORD.toString())) {
-            return requestAccessTokenWithPassword(authorization,
-                    oAuthRequest.getUsername(), oAuthRequest.getPassword(),
-                    oAuthRequest.getScopes(), oAuthRequest.getClientId());
+            return requestAccessTokenWithPassword(oAuthRequest.getUsername(),
+                    oAuthRequest.getPassword(), oAuthRequest.getScopes(),
+                    oAuthRequest.getClientId(), oAuthRequest.getClientSecret());
         }
         else if (grantType.equals(GrantType.CLIENT_CREDENTIALS.toString())) {
-            return requestAccessTokenWithClientCredentials(authorization,
+            return requestAccessTokenWithClientCredentials(
+                    oAuthRequest.getClientId(), oAuthRequest.getClientSecret(),
                     oAuthRequest.getScopes());
         }
         else {
@@ -78,25 +91,31 @@
 
     }
 
-    /** Confidential clients must authenticate
+    /**
+     * RFC 6749: 
+     *  If the client type is confidential or the client was issued client
+     *  credentials, the client MUST authenticate with the authorization server.
      * 
-     * @param authorization
      * @param authorizationCode
-     * @param redirectURI
+     * @param redirectURI required if included in the authorization request
      * @param clientId required if there is no authorization header
+     * @param clientSecret clilent_secret, required if client_secret was issued 
+     *  for the client in client registration.
      * @return
      * @throws OAuthSystemException
      * @throws KustvaktException
-     * @throws OAuthProblemException 
      */
     private OAuthResponse requestAccessTokenWithAuthorizationCode (
-            String authorization, String authorizationCode, String redirectURI,
-            String clientId) throws KustvaktException {
-        OAuth2Client client =
-                clientService.authenticateClient(authorization, clientId);
+            String authorizationCode, String redirectURI, String clientId,
+            String clientSecret)
+            throws KustvaktException, OAuthSystemException {
+
+        clientService.authenticateClient(clientId, clientSecret);
 
         // TODO
-        return null;
+        // check authorization code
+        // check redirectURI
+        return createsAccessTokenResponse();
     }
 
 
@@ -104,30 +123,32 @@
     /**  Third party apps must not be allowed to use password grant.
      * MH: password grant is only allowed for trusted clients (korap frontend)
      *  
-     * A similar rule to that of authorization code grant is additionally 
-     * applied, namely client_id is required when authorization header is not 
-     * available.
+     * According to RFC 6749, client authentication is only required for 
+     * confidential clients and whenever client credentials are provided.
+     * Moreover, client_id is optional for password grant, but without it, 
+     * the authentication server cannot check the client type. 
      * 
-     * According to RFC 6749, client_id is optional for password grant, 
-     * but without it, server would not be able to check the client 
-     * type, thus cannot make sure that confidential clients authenticate. 
+     * To make sure that confidential clients authenticate, client_id is made 
+     * required (similar to authorization code grant).
      * 
-     * @param authorization
-     * @param username
-     * @param password
+     * 
+     * @param username username, required
+     * @param password user password, required
      * @param scopes
-     * @param clientId
+     * @param clientId client_id, required
+     * @param clientSecret clilent_secret, required if client_secret was issued 
+     *  for the client in client registration.
      * @return
      * @throws KustvaktException
-     * @throws OAuthSystemException 
+     * @throws OAuthSystemException
      */
-    private OAuthResponse requestAccessTokenWithPassword (String authorization,
-            String username, String password, Set<String> scopes,
-            String clientId) throws KustvaktException, OAuthSystemException {
+    private OAuthResponse requestAccessTokenWithPassword (String username,
+            String password, Set<String> scopes, String clientId,
+            String clientSecret)
+            throws KustvaktException, OAuthSystemException {
 
         OAuth2Client client =
-                clientService.authenticateClient(authorization, clientId);
-
+                clientService.authenticateClient(clientId, clientSecret);
         if (!client.isNative()) {
             throw new KustvaktException(StatusCodes.CLIENT_AUTHORIZATION_FAILED,
                     "Password grant is not allowed for third party clients",
@@ -138,7 +159,7 @@
         return createsAccessTokenResponse();
     }
 
-    private void authenticateUser (String username, String password,
+    public void authenticateUser (String username, String password,
             Set<String> scopes) throws KustvaktException {
         if (username == null || username.isEmpty()) {
             throw new KustvaktException(StatusCodes.MISSING_PARAMETER,
@@ -162,50 +183,46 @@
 
     /** Clients must authenticate
      * 
-     * @param authorization
+     * @param clientId client_id parameter, required
+     * @param clientSecret client_secret parameter, required
      * @param scopes
-     * @param request 
      * @return
-     * @throws KustvaktException 
-     * @throws OAuthSystemException 
+     * @throws KustvaktException
+     * @throws OAuthSystemException
      */
     private OAuthResponse requestAccessTokenWithClientCredentials (
-            String authorization, Set<String> scopes)
+            String clientId, String clientSecret, Set<String> scopes)
             throws KustvaktException, OAuthSystemException {
 
-        if (authorization == null || authorization.isEmpty()) {
+        if (clientSecret == null || clientSecret.isEmpty()) {
             throw new KustvaktException(
                     StatusCodes.CLIENT_AUTHENTICATION_FAILED,
-                    "Client authentication using authorization header is required.",
-                    OAuthError.TokenResponse.INVALID_CLIENT);
+                    "Missing parameters: client_secret", "invalid_request");
         }
-        else {
-            clientService.authenticateClientByBasicAuthorization(authorization,
-                    null);
-            return createsAccessTokenResponse();
-        }
+
+        clientService.authenticateClient(clientId, clientSecret);
+        return createsAccessTokenResponse();
     }
 
 
-    /**
-     * @param request  
-     * @return 
-     * @throws OAuthSystemException 
+
+    /** Creates an OAuthResponse containing an access token and a refresh token 
+     *  with type Bearer.
      * 
+     * @return an OAuthResponse containing an access token
+     * @throws OAuthSystemException
      */
     private OAuthResponse createsAccessTokenResponse ()
             throws OAuthSystemException {
-        OAuthIssuer oauthIssuerImpl = new OAuthIssuerImpl(new MD5Generator());
-        OAuthResponse r = null;
+        String accessToken = oauthIssuer.accessToken();
+        String refreshToken = oauthIssuer.refreshToken();
 
-        String accessToken = oauthIssuerImpl.accessToken();
-        String refreshToken = oauthIssuerImpl.refreshToken();
-
-        r = OAuthASResponse.tokenResponse(HttpServletResponse.SC_OK)
-                .setAccessToken(accessToken)
-                .setTokenType(TokenType.BEARER.toString())
-                .setExpiresIn(String.valueOf(config.getTokenTTL()))
-                .setRefreshToken(refreshToken).buildJSONMessage();
+        OAuthResponse r =
+                OAuthASResponse.tokenResponse(Status.OK.getStatusCode())
+                        .setAccessToken(accessToken)
+                        .setTokenType(TokenType.BEARER.toString())
+                        .setExpiresIn(String.valueOf(config.getTokenTTL()))
+                        .setRefreshToken(refreshToken).buildJSONMessage();
         // scope
         return r;
     }
diff --git a/full/src/main/java/de/ids_mannheim/korap/user/ShibbolethUser.java b/full/src/main/java/de/ids_mannheim/korap/user/ShibbolethUser.java
new file mode 100644
index 0000000..80d01f5
--- /dev/null
+++ b/full/src/main/java/de/ids_mannheim/korap/user/ShibbolethUser.java
@@ -0,0 +1,90 @@
+package de.ids_mannheim.korap.user;
+
+/**
+ * User: hanl
+ * Date: 10/16/13
+ * Time: 2:02 PM
+ * 
+ * @author margaretha
+ * @last-update 18/04/2018
+ */
+public class ShibbolethUser extends User {
+
+    /**
+     * Auto generated serial Id
+     */
+    private static final long serialVersionUID = -4008236368010397075L;
+    private String mail;
+    private String affiliation;
+    // EM: common name
+    private String commonName;
+
+
+    protected ShibbolethUser () {
+        super(1);
+    }
+
+
+    private ShibbolethUser (String eduPersonID, String mail, String cn,
+                      String affiliation) {
+        this(eduPersonID);
+        this.setUsername(eduPersonID);
+        this.setMail(mail);
+        this.setAffiliation(affiliation);
+        this.setCommonName(cn);
+    }
+
+
+    public ShibbolethUser (String username) {
+        super(username, 1);
+
+    }
+
+
+    @Override
+    public String toString () {
+        final StringBuffer sb = new StringBuffer("ShibbolethUser{");
+        sb.append(", mail='").append(getMail()).append('\'');
+        sb.append(", affiliation='").append(getAffiliation()).append('\'');
+        sb.append(", common-name='").append(getCommonName()).append('\'');
+        sb.append('}');
+        return sb.toString();
+    }
+
+
+    @Override
+    protected User clone () {
+        return new ShibbolethUser(this.getUsername(), this.getMail(), this.getCommonName(),
+                this.getAffiliation());
+    }
+
+
+    public String getMail () {
+        return mail;
+    }
+
+
+    public void setMail (String mail) {
+        this.mail = mail;
+    }
+
+
+    public String getAffiliation () {
+        return affiliation;
+    }
+
+
+    public void setAffiliation (String affiliation) {
+        this.affiliation = affiliation;
+    }
+
+
+    public String getCommonName () {
+        return commonName;
+    }
+
+
+    public void setCommonName (String commonName) {
+        this.commonName = commonName;
+    }
+}
diff --git a/full/src/main/java/de/ids_mannheim/korap/web/OAuth2ResponseHandler.java b/full/src/main/java/de/ids_mannheim/korap/web/OAuth2ResponseHandler.java
index 5df68b2..0d31236 100644
--- a/full/src/main/java/de/ids_mannheim/korap/web/OAuth2ResponseHandler.java
+++ b/full/src/main/java/de/ids_mannheim/korap/web/OAuth2ResponseHandler.java
@@ -1,5 +1,8 @@
 package de.ids_mannheim.korap.web;
 
+import java.net.URI;
+import java.net.URISyntaxException;
+
 import javax.ws.rs.WebApplicationException;
 import javax.ws.rs.core.Response;
 import javax.ws.rs.core.Response.ResponseBuilder;
@@ -92,7 +95,9 @@
         OAuthResponse oAuthResponse = null;
         String errorCode = e.getEntity();
         try {
-            if (errorCode.equals(OAuthError.TokenResponse.INVALID_CLIENT)) {
+            if (errorCode.equals(OAuthError.TokenResponse.INVALID_CLIENT)
+                    || errorCode.equals(
+                            OAuthError.TokenResponse.UNAUTHORIZED_CLIENT)) {
                 oAuthResponse = createOAuthResponse(e,
                         Status.UNAUTHORIZED.getStatusCode());
             }
@@ -100,8 +105,6 @@
                     || errorCode
                             .equals(OAuthError.TokenResponse.INVALID_REQUEST)
                     || errorCode.equals(OAuthError.TokenResponse.INVALID_SCOPE)
-                    || errorCode
-                            .equals(OAuthError.TokenResponse.UNAUTHORIZED_CLIENT)
                     || errorCode.equals(
                             OAuthError.TokenResponse.UNSUPPORTED_GRANT_TYPE)) {
                 oAuthResponse = createOAuthResponse(e,
@@ -142,4 +145,16 @@
         }
         return builder.build();
     }
+
+    public Response sendRedirect (String locationUri) throws KustvaktException {
+        try {
+            ResponseBuilder builder =
+                    Response.temporaryRedirect(new URI(locationUri));
+            return builder.build();
+        }
+        catch (URISyntaxException e) {
+            throw new KustvaktException(StatusCodes.INVALID_ARGUMENT,
+                    e.getMessage(), OAuthError.CodeResponse.INVALID_REQUEST);
+        }
+    }
 }
diff --git a/full/src/main/java/de/ids_mannheim/korap/web/controller/OAuth2Controller.java b/full/src/main/java/de/ids_mannheim/korap/web/controller/OAuth2Controller.java
index ece03f2..b0699b1 100644
--- a/full/src/main/java/de/ids_mannheim/korap/web/controller/OAuth2Controller.java
+++ b/full/src/main/java/de/ids_mannheim/korap/web/controller/OAuth2Controller.java
@@ -2,6 +2,7 @@
 
 import javax.servlet.http.HttpServletRequest;
 import javax.ws.rs.Consumes;
+import javax.ws.rs.FormParam;
 import javax.ws.rs.HeaderParam;
 import javax.ws.rs.POST;
 import javax.ws.rs.Path;
@@ -10,16 +11,20 @@
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.MultivaluedMap;
 import javax.ws.rs.core.Response;
-import javax.ws.rs.core.SecurityContext;
 
+import org.apache.oltu.oauth2.as.request.AbstractOAuthTokenRequest;
+import org.apache.oltu.oauth2.as.request.OAuthAuthzRequest;
 import org.apache.oltu.oauth2.as.request.OAuthTokenRequest;
+import org.apache.oltu.oauth2.as.request.OAuthUnauthenticatedTokenRequest;
 import org.apache.oltu.oauth2.common.exception.OAuthProblemException;
 import org.apache.oltu.oauth2.common.exception.OAuthSystemException;
 import org.apache.oltu.oauth2.common.message.OAuthResponse;
+import org.apache.oltu.oauth2.common.message.types.GrantType;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 
 import de.ids_mannheim.korap.exceptions.KustvaktException;
+import de.ids_mannheim.korap.service.OAuth2AuthorizationService;
 import de.ids_mannheim.korap.service.OAuth2Service;
 import de.ids_mannheim.korap.web.OAuth2ResponseHandler;
 import de.ids_mannheim.korap.web.utils.FormRequestWrapper;
@@ -31,7 +36,50 @@
     @Autowired
     private OAuth2ResponseHandler responseHandler;
     @Autowired
-    private OAuth2Service oauth2Service;
+    private OAuth2Service oAuth2Service;
+    @Autowired
+    private OAuth2AuthorizationService authorizationService;
+
+    /** Kustvakt supports authorization only with Kalamar as the authorization 
+     * web-frontend or user interface. Thus authorization code request requires
+     * user credentials in the request body, similar to access token request in
+     * resource owner password grant request. 
+     * 
+     * @param request
+     * @param authorization
+     * @param form
+     * @return
+     */
+    @POST
+    @Path("authorize")
+    @Consumes(MediaType.APPLICATION_FORM_URLENCODED)
+    @Produces(MediaType.APPLICATION_JSON + ";charset=utf-8")
+    public Response requestAuthorizationCode (
+            @Context HttpServletRequest request,
+            @HeaderParam("Authorization") String authorization,
+            MultivaluedMap<String, String> form) {
+
+        try {
+            HttpServletRequest requestWithForm =
+                    new FormRequestWrapper(request, form);
+            OAuthAuthzRequest authzRequest =
+                    new OAuthAuthzRequest(requestWithForm);
+            OAuthResponse authResponse =
+                    authorizationService.requestAuthorizationCode(
+                            requestWithForm, authzRequest, authorization);
+            return responseHandler.sendRedirect(authResponse.getLocationUri());
+        }
+        catch (OAuthSystemException e) {
+            throw responseHandler.throwit(e);
+        }
+        catch (OAuthProblemException e) {
+            throw responseHandler.throwit(e);
+        }
+        catch (KustvaktException e) {
+            throw responseHandler.throwit(e);
+        }
+    }
+
 
     /** Grants a client an access token, namely a string used in authenticated 
      *  requests representing user authorization for the client to access user 
@@ -49,27 +97,32 @@
     @Consumes(MediaType.APPLICATION_FORM_URLENCODED)
     @Produces(MediaType.APPLICATION_JSON + ";charset=utf-8")
     public Response requestAccessToken (@Context HttpServletRequest request,
-            @HeaderParam("Authorization") String authorization,
+            @FormParam("grant_type") String grantType,
             MultivaluedMap<String, String> form) {
 
         try {
-            OAuthTokenRequest oAuthRequest = null;
-            try {
+            AbstractOAuthTokenRequest oAuthRequest = null;
+            if (grantType != null && !grantType.isEmpty() && grantType
+                    .equals(GrantType.CLIENT_CREDENTIALS.toString())) {
                 oAuthRequest = new OAuthTokenRequest(
                         new FormRequestWrapper(request, form));
             }
-            catch (OAuthProblemException e) {
-                throw responseHandler.throwit(e);
+            else {
+                oAuthRequest = new OAuthUnauthenticatedTokenRequest(
+                        new FormRequestWrapper(request, form));
             }
 
-            OAuthResponse oAuthResponse = oauth2Service
-                    .requestAccessToken(oAuthRequest, authorization);
+            OAuthResponse oAuthResponse =
+                    oAuth2Service.requestAccessToken(oAuthRequest);
 
             return responseHandler.createResponse(oAuthResponse);
         }
         catch (KustvaktException e) {
             throw responseHandler.throwit(e);
         }
+        catch (OAuthProblemException e) {
+            throw responseHandler.throwit(e);
+        }
         catch (OAuthSystemException e) {
             throw responseHandler.throwit(e);
         }
diff --git a/full/src/main/java/de/ids_mannheim/korap/web/controller/OAuthClientController.java b/full/src/main/java/de/ids_mannheim/korap/web/controller/OAuthClientController.java
index 9c4834c..39b93b7 100644
--- a/full/src/main/java/de/ids_mannheim/korap/web/controller/OAuthClientController.java
+++ b/full/src/main/java/de/ids_mannheim/korap/web/controller/OAuthClientController.java
@@ -1,17 +1,21 @@
 package de.ids_mannheim.korap.web.controller;
 
+import javax.servlet.http.HttpServletRequest;
 import javax.ws.rs.Consumes;
 import javax.ws.rs.DELETE;
 import javax.ws.rs.FormParam;
-import javax.ws.rs.HeaderParam;
 import javax.ws.rs.POST;
 import javax.ws.rs.Path;
 import javax.ws.rs.Produces;
 import javax.ws.rs.core.Context;
 import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.MultivaluedMap;
 import javax.ws.rs.core.Response;
 import javax.ws.rs.core.SecurityContext;
 
+import org.apache.oltu.oauth2.as.request.OAuthRequest;
+import org.apache.oltu.oauth2.common.exception.OAuthProblemException;
+import org.apache.oltu.oauth2.common.exception.OAuthSystemException;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 
@@ -19,12 +23,14 @@
 
 import de.ids_mannheim.korap.dto.OAuth2ClientDto;
 import de.ids_mannheim.korap.exceptions.KustvaktException;
+import de.ids_mannheim.korap.oauth.OAuthDeregisterClientRequest;
 import de.ids_mannheim.korap.security.context.TokenContext;
 import de.ids_mannheim.korap.service.OAuth2ClientService;
 import de.ids_mannheim.korap.web.OAuth2ResponseHandler;
 import de.ids_mannheim.korap.web.filter.AuthenticationFilter;
 import de.ids_mannheim.korap.web.filter.BlockingFilter;
 import de.ids_mannheim.korap.web.input.OAuth2ClientJson;
+import de.ids_mannheim.korap.web.utils.FormRequestWrapper;
 
 
 /** Defines controllers for OAuth2 clients, namely applications attempting
@@ -111,14 +117,25 @@
     @Consumes(MediaType.APPLICATION_FORM_URLENCODED)
     public Response deregisterConfidentialClient (
             @Context SecurityContext securityContext,
-            @HeaderParam("Authorization") String authorization,
-            @FormParam("client_id") String clientId) {
+            //            @HeaderParam("Authorization") String authorization,
+            //            @FormParam("client_id") String clientId
+            @Context HttpServletRequest request,
+            MultivaluedMap<String, String> form) {
         try {
-            clientService.deregisterConfidentialClient(authorization, clientId);
+            OAuthRequest oAuthRequest = new OAuthDeregisterClientRequest(
+                    new FormRequestWrapper(request, form));
+
+            clientService.deregisterConfidentialClient(oAuthRequest);
             return Response.ok().build();
         }
         catch (KustvaktException e) {
             throw responseHandler.throwit(e);
         }
+        catch (OAuthSystemException e) {
+            throw responseHandler.throwit(e);
+        }
+        catch (OAuthProblemException e) {
+            throw responseHandler.throwit(e);
+        }
     }
 }
diff --git a/full/src/main/java/de/ids_mannheim/korap/web/controller/SearchController.java b/full/src/main/java/de/ids_mannheim/korap/web/controller/SearchController.java
index e64bcfe..c6a3a97 100644
--- a/full/src/main/java/de/ids_mannheim/korap/web/controller/SearchController.java
+++ b/full/src/main/java/de/ids_mannheim/korap/web/controller/SearchController.java
@@ -233,7 +233,7 @@
      * @param pageLength number of results per page
      * @param pageIndex
      * @param startPage
-     * @param cq collection query
+     * @param cq corpus query
      * @return
      */
     // ref query parameter removed!
diff --git a/full/src/main/java/de/ids_mannheim/korap/web/input/OAuth2ClientJson.java b/full/src/main/java/de/ids_mannheim/korap/web/input/OAuth2ClientJson.java
index 2dc4034..99705e8 100644
--- a/full/src/main/java/de/ids_mannheim/korap/web/input/OAuth2ClientJson.java
+++ b/full/src/main/java/de/ids_mannheim/korap/web/input/OAuth2ClientJson.java
@@ -20,4 +20,5 @@
     // redirect URI determines where the OAuth 2.0 service will return the user to 
     // after they have authorized a client. It must be https.
     private String redirectURI;
+    private String description;
 }
diff --git a/full/src/main/resources/db/insert/V3.5__insert_oauth2_clients.sql b/full/src/main/resources/db/insert/V3.5__insert_oauth2_clients.sql
index 3cc2999..f9cd171 100644
--- a/full/src/main/resources/db/insert/V3.5__insert_oauth2_clients.sql
+++ b/full/src/main/resources/db/insert/V3.5__insert_oauth2_clients.sql
@@ -2,21 +2,33 @@
 
 -- plain secret value is "secret"
 INSERT INTO oauth2_client(id,name,secret,type,native, url,url_hashcode,
-  redirect_uri,registered_by) 
-VALUES ("fCBbQkAyYzI4NzUxMg==","test confidential client",
+  redirect_uri,registered_by, description) 
+VALUES ("fCBbQkAyYzI4NzUxMg","test confidential client",
   "$2a$08$vi1FbuN3p6GcI1tSxMAoeuIYL8Yw3j6A8wJthaN8ZboVnrQaTwLPq",
   "CONFIDENTIAL", 1, "http://korap.ids-mannheim.de/confidential", 2087150261, 
-  "https://korap.ids-mannheim.de/confidential/redirect", "system");
+  "https://korap.ids-mannheim.de/confidential/redirect", "system",
+  "This is a test native confidential client.");
+  
+-- plain secret value is "secret"
+INSERT INTO oauth2_client(id,name,secret,type,native, url,url_hashcode,
+  redirect_uri,registered_by, description) 
+VALUES ("9aHsGW6QflV13ixNpez","test non native confidential client",
+  "$2a$08$vi1FbuN3p6GcI1tSxMAoeuIYL8Yw3j6A8wJthaN8ZboVnrQaTwLPq",
+  "CONFIDENTIAL", 0, "http://third.party.com/confidential", 1712550103, 
+  "https://third.party.com/confidential/redirect", "system",
+  "This is a test nonnative confidential client.");
   
 INSERT INTO oauth2_client(id,name,secret,type,url,url_hashcode,
-  redirect_uri, registered_by) 
-VALUES ("8bIDtZnH6NvRkW2Fq==","third party client",null,
+  redirect_uri, registered_by, description) 
+VALUES ("8bIDtZnH6NvRkW2Fq","third party client",null,
   "PUBLIC","http://third.party.client.com", -2137275617,
-  "https://third.party.client.com/redirect","system");
+  "https://third.party.client.com/redirect","system",
+  "This is a test nonnative public client.");
   
 INSERT INTO oauth2_client(id,name,secret,type,native,url,url_hashcode,
-  redirect_uri, registered_by) 
+  redirect_uri, registered_by, description) 
 VALUES ("iBr3LsTCxOj7D2o0A5m","test public client",null,
   "PUBLIC", 1, "http://korap.ids-mannheim.de/public", 1360724310,
-  "https://korap.ids-mannheim.de/public/redirect","system"); 
+  "https://korap.ids-mannheim.de/public/redirect","system", 
+  "This is a test native public client."); 
   
\ No newline at end of file
diff --git a/full/src/main/resources/db/new-mysql/V1.4__oauth2_tables.sql b/full/src/main/resources/db/new-mysql/V1.4__oauth2_tables.sql
index c55ef43..81b0d92 100644
--- a/full/src/main/resources/db/new-mysql/V1.4__oauth2_tables.sql
+++ b/full/src/main/resources/db/new-mysql/V1.4__oauth2_tables.sql
@@ -10,7 +10,8 @@
 	url TEXT NOT NULL,
 	url_hashcode UNIQUE INTEGER NOT NULL,
 	redirect_uri TEXT NOT NULL,
-	registered_by VARCHAR(100) NOT NULL
+	registered_by VARCHAR(100) NOT NULL,
+	description VARCHAR(250) NOT NULL
 );
 
 --
diff --git a/full/src/main/resources/db/new-sqlite/V1.4__oauth2_tables.sql b/full/src/main/resources/db/new-sqlite/V1.4__oauth2_tables.sql
index 89014f2..c055f4d 100644
--- a/full/src/main/resources/db/new-sqlite/V1.4__oauth2_tables.sql
+++ b/full/src/main/resources/db/new-sqlite/V1.4__oauth2_tables.sql
@@ -10,7 +10,8 @@
 	url TEXT NOT NULL,
 	url_hashcode INTEGER NOT NULL,
 	redirect_uri TEXT NOT NULL,
-	registered_by VARCHAR(100) NOT NULL
+	registered_by VARCHAR(100) NOT NULL,
+	description VARCHAR(250) NOT NULL
 );
 
 CREATE UNIQUE INDEX client_id_index on oauth2_client(id);
diff --git a/full/src/main/resources/default-config.xml b/full/src/main/resources/default-config.xml
index feef295..57f65ae 100644
--- a/full/src/main/resources/default-config.xml
+++ b/full/src/main/resources/default-config.xml
@@ -184,10 +184,17 @@
 	<bean id="kustvaktResponseHandler" class="de.ids_mannheim.korap.web.KustvaktExceptionHandler">
 		<constructor-arg index="0" name="iface" ref="kustvakt_auditing" />
 	</bean>
-	<bean id="oauth2_exception" class="de.ids_mannheim.korap.web.OAuth2ExceptionHandler">
+	
+	<!-- OAuth -->
+	<bean id="oauth2ResponseHandler" class="de.ids_mannheim.korap.web.OAuth2ResponseHandler">
 		<constructor-arg index="0" name="iface" ref="kustvakt_auditing" />
 	</bean>
-
+	
+	<bean id="mdGenerator" class="org.apache.oltu.oauth2.as.issuer.MD5Generator">
+	</bean>
+	<bean id="oauthIssuer" class="org.apache.oltu.oauth2.as.issuer.OAuthIssuerImpl">
+		<constructor-arg index="0" ref="mdGenerator" />
+	</bean>
 
 	<bean id="kustvakt_userdb" class="de.ids_mannheim.korap.handlers.EntityDao">
 		<constructor-arg ref="kustvakt_db" />
diff --git a/full/src/test/java/de/ids_mannheim/korap/web/controller/OAuth2ClientControllerTest.java b/full/src/test/java/de/ids_mannheim/korap/web/controller/OAuth2ClientControllerTest.java
index 66d610f..b194e08 100644
--- a/full/src/test/java/de/ids_mannheim/korap/web/controller/OAuth2ClientControllerTest.java
+++ b/full/src/test/java/de/ids_mannheim/korap/web/controller/OAuth2ClientControllerTest.java
@@ -62,6 +62,7 @@
         json.setType(OAuth2ClientType.CONFIDENTIAL);
         json.setUrl("http://example.client.com");
         json.setRedirectURI("https://example.client.com/redirect");
+        json.setDescription("This is a confidential test client.");
 
         return resource().path("oauth2").path("client").path("register")
                 .header(Attributes.AUTHORIZATION,
@@ -89,8 +90,9 @@
         assertEquals(OAuthError.TokenResponse.INVALID_REQUEST,
                 node.at("/error").asText());
 
+        testDeregisterConfidentialClientMissingParameters();
         testDeregisterClientIncorrectCredentials(clientId);
-        testDeregisterConfidentialClient(clientId, clientSecret);
+        testDeregisterConfidentialClient(clientId,clientSecret);
     }
 
     @Test
@@ -101,6 +103,7 @@
         json.setType(OAuth2ClientType.PUBLIC);
         json.setUrl("http://test.public.client.com");
         json.setRedirectURI("https://test.public.client.com/redirect");
+        json.setDescription("This is a public test client.");
 
         ClientResponse response = resource().path("oauth2").path("client")
                 .path("register")
@@ -129,6 +132,7 @@
         json.setType(OAuth2ClientType.PUBLIC);
         json.setUrl("http://korap.ids-mannheim.de/native");
         json.setRedirectURI("https://korap.ids-mannheim.de/native/redirect");
+        json.setDescription("This is a native test client.");
 
         ClientResponse response = resource().path("oauth2").path("client")
                 .path("register")
@@ -140,7 +144,7 @@
                 .entity(json).post(ClientResponse.class);
 
         assertEquals(Status.OK.getStatusCode(), response.getStatus());
-        
+
         //EM: need to check native
     }
 
@@ -167,8 +171,6 @@
     private void testDeregisterConfidentialClient (String clientId,
             String clientSecret) throws UniformInterfaceException,
             ClientHandlerException, KustvaktException {
-        MultivaluedMap<String, String> form = new MultivaluedMapImpl();
-        form.add("client_id", clientId);
 
         ClientResponse response = resource().path("oauth2").path("client")
                 .path("deregister").path("confidential")
@@ -178,16 +180,34 @@
                 .header(HttpHeaders.X_FORWARDED_FOR, "149.27.0.32")
                 .header(HttpHeaders.CONTENT_TYPE,
                         ContentType.APPLICATION_FORM_URLENCODED)
-                .entity(form).delete(ClientResponse.class);
+                .delete(ClientResponse.class);
 
         assertEquals(Status.OK.getStatusCode(), response.getStatus());
     }
 
+    private void testDeregisterConfidentialClientMissingParameters ()
+            throws KustvaktException {
+
+        ClientResponse response = resource().path("oauth2").path("client")
+                .path("deregister").path("confidential")
+                .header(HttpHeaders.X_FORWARDED_FOR, "149.27.0.32")
+                .header(HttpHeaders.CONTENT_TYPE,
+                        ContentType.APPLICATION_FORM_URLENCODED)
+                .delete(ClientResponse.class);
+
+        String entity = response.getEntity(String.class);
+        assertEquals(Status.BAD_REQUEST.getStatusCode(), response.getStatus());
+
+        JsonNode node = JsonUtils.readTree(entity);
+        assertEquals(OAuthError.TokenResponse.INVALID_REQUEST,
+                node.at("/error").asText());
+        assertEquals("Missing parameters: client_secret client_id",
+                node.at("/error_description").asText());
+    }
+
     private void testDeregisterClientIncorrectCredentials (String clientId)
             throws UniformInterfaceException, ClientHandlerException,
             KustvaktException {
-        MultivaluedMap<String, String> form = new MultivaluedMapImpl();
-        form.add("client_id", clientId);
 
         ClientResponse response = resource().path("oauth2").path("client")
                 .path("deregister").path("confidential")
@@ -197,7 +217,7 @@
                 .header(HttpHeaders.X_FORWARDED_FOR, "149.27.0.32")
                 .header(HttpHeaders.CONTENT_TYPE,
                         ContentType.APPLICATION_FORM_URLENCODED)
-                .entity(form).delete(ClientResponse.class);
+                .delete(ClientResponse.class);
 
         String entity = response.getEntity(String.class);
         assertEquals(Status.UNAUTHORIZED.getStatusCode(), response.getStatus());
@@ -205,7 +225,7 @@
         JsonNode node = JsonUtils.readTree(entity);
         assertEquals(OAuthError.TokenResponse.INVALID_CLIENT,
                 node.at("/error").asText());
-        assertEquals("Invalid client credentials.",
+        assertEquals("Invalid client credentials",
                 node.at("/error_description").asText());
 
         checkWWWAuthenticateHeader(response);
diff --git a/full/src/test/java/de/ids_mannheim/korap/web/controller/OAuth2ControllerTest.java b/full/src/test/java/de/ids_mannheim/korap/web/controller/OAuth2ControllerTest.java
index 956e3ed..3214fda 100644
--- a/full/src/test/java/de/ids_mannheim/korap/web/controller/OAuth2ControllerTest.java
+++ b/full/src/test/java/de/ids_mannheim/korap/web/controller/OAuth2ControllerTest.java
@@ -2,6 +2,9 @@
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
+import java.net.URI;
 
 import javax.ws.rs.core.MultivaluedMap;
 import javax.ws.rs.core.Response.Status;
@@ -14,9 +17,7 @@
 
 import com.fasterxml.jackson.databind.JsonNode;
 import com.google.common.net.HttpHeaders;
-import com.sun.jersey.api.client.ClientHandlerException;
 import com.sun.jersey.api.client.ClientResponse;
-import com.sun.jersey.api.client.UniformInterfaceException;
 import com.sun.jersey.core.util.MultivaluedMapImpl;
 
 import de.ids_mannheim.korap.authentication.http.HttpAuthorizationHandler;
@@ -34,24 +35,99 @@
     @Autowired
     private HttpAuthorizationHandler handler;
 
-    private ClientResponse testRequestTokenConfidentialClient (
-            MultivaluedMap<String, String> form)
-            throws UniformInterfaceException, ClientHandlerException,
-            KustvaktException {
-        return resource().path("oauth2").path("token")
+    private ClientResponse requestAuthorizationConfidentialClient (
+            MultivaluedMap<String, String> form) throws KustvaktException {
+
+        return resource().path("oauth2").path("authorize")
                 .header(Attributes.AUTHORIZATION,
                         handler.createBasicAuthorizationHeaderValue(
-                                "fCBbQkAyYzI4NzUxMg==", "secret"))
+                                "fCBbQkAyYzI4NzUxMg", "secret"))
                 .header(HttpHeaders.X_FORWARDED_FOR, "149.27.0.32")
                 .header(HttpHeaders.CONTENT_TYPE,
                         ContentType.APPLICATION_FORM_URLENCODED)
                 .entity(form).post(ClientResponse.class);
     }
 
-    private ClientResponse testRequestTokenPublicClient (
-            MultivaluedMap<String, String> form)
-            throws UniformInterfaceException, ClientHandlerException,
-            KustvaktException {
+    @Test
+    public void testAuthorizeConfidentialClient () throws KustvaktException {
+        MultivaluedMap<String, String> form = new MultivaluedMapImpl();
+        form.add("response_type", "code");
+        form.add("client_id", "fCBbQkAyYzI4NzUxMg");
+        form.add("username", "dory");
+        form.add("password", "password");
+        ClientResponse response = requestAuthorizationConfidentialClient(form);
+
+        assertEquals(Status.TEMPORARY_REDIRECT.getStatusCode(),
+                response.getStatus());
+        URI redirectUri = response.getLocation();
+        assertTrue(redirectUri.getQuery().startsWith("code"));
+    }
+
+    @Test
+    public void testAuthorizeInvalidRedirectUri () throws KustvaktException {
+        String redirectUri = "https://different.uri/redirect";
+
+        MultivaluedMap<String, String> form = new MultivaluedMapImpl();
+        form.add("response_type", "code");
+        form.add("client_id", "fCBbQkAyYzI4NzUxMg");
+        form.add("username", "dory");
+        form.add("password", "password");
+        form.add("redirect_uri", redirectUri);
+        ClientResponse response = requestAuthorizationConfidentialClient(form);
+
+        assertEquals(Status.BAD_REQUEST.getStatusCode(), response.getStatus());
+
+        String entity = response.getEntity(String.class);
+        JsonNode node = JsonUtils.readTree(entity);
+        assertEquals(OAuthError.CodeResponse.INVALID_REQUEST,
+                node.at("/error").asText());
+        assertEquals(redirectUri + " is unknown",
+                node.at("/error_description").asText());
+    }
+
+    @Test
+    public void testAuthorizeMissingRequiredParameters ()
+            throws KustvaktException {
+        MultivaluedMap<String, String> form = new MultivaluedMapImpl();
+        // missing code
+        ClientResponse response = requestAuthorizationConfidentialClient(form);
+
+        assertEquals(Status.BAD_REQUEST.getStatusCode(), response.getStatus());
+
+        String entity = response.getEntity(String.class);
+        JsonNode node = JsonUtils.readTree(entity);
+        assertEquals(OAuthError.CodeResponse.INVALID_REQUEST,
+                node.at("/error").asText());
+        assertEquals("Missing response_type parameter value",
+                node.at("/error_description").asText());
+
+        // missing client_id
+        form.add("response_type", "code");
+        response = requestAuthorizationConfidentialClient(form);
+        entity = response.getEntity(String.class);
+        node = JsonUtils.readTree(entity);
+        assertEquals("Missing parameters: client_id",
+                node.at("/error_description").asText());
+    }
+
+    @Test
+    public void testAuthorizeInvalidResponseType () throws KustvaktException {
+        MultivaluedMap<String, String> form = new MultivaluedMapImpl();
+        form.add("response_type", "string");
+
+        ClientResponse response = requestAuthorizationConfidentialClient(form);
+        assertEquals(Status.BAD_REQUEST.getStatusCode(), response.getStatus());
+
+        String entity = response.getEntity(String.class);
+        JsonNode node = JsonUtils.readTree(entity);
+        assertEquals(OAuthError.CodeResponse.INVALID_REQUEST,
+                node.at("/error").asText());
+        assertEquals("Invalid response_type parameter value",
+                node.at("/error_description").asText());
+    }
+
+    private ClientResponse requestToken (MultivaluedMap<String, String> form)
+            throws KustvaktException {
         return resource().path("oauth2").path("token")
                 .header(HttpHeaders.X_FORWARDED_FOR, "149.27.0.32")
                 .header(HttpHeaders.CONTENT_TYPE,
@@ -61,12 +137,15 @@
 
     @Test
     public void testRequestTokenPasswordGrantConfidential ()
-            throws UniformInterfaceException, ClientHandlerException,
-            KustvaktException {
+            throws KustvaktException {
         MultivaluedMap<String, String> form = new MultivaluedMapImpl();
         form.add("grant_type", "password");
+        form.add("client_id", "fCBbQkAyYzI4NzUxMg");
+        form.add("client_secret", "secret");
+        form.add("username", "dory");
+        form.add("password", "password");
 
-        ClientResponse response = testRequestTokenConfidentialClient(form);
+        ClientResponse response = requestToken(form);
         String entity = response.getEntity(String.class);
 
         JsonNode node = JsonUtils.readTree(entity);
@@ -78,71 +157,80 @@
     }
 
     @Test
-    public void testRequestTokenConfidentialMissingSecret ()
-            throws UniformInterfaceException, ClientHandlerException,
-            KustvaktException {
+    public void testRequestTokenPasswordGrantMissingClientSecret ()
+            throws KustvaktException {
 
         MultivaluedMap<String, String> form = new MultivaluedMapImpl();
         form.add("grant_type", "password");
-        form.add("client_id", "fCBbQkAyYzI4NzUxMg==");
+        form.add("username", "dory");
+        form.add("password", "password");
+        form.add("client_id", "fCBbQkAyYzI4NzUxMg");
 
-        ClientResponse response = testRequestTokenPublicClient(form);
-        assertEquals(Status.UNAUTHORIZED.getStatusCode(), response.getStatus());
+        ClientResponse response = requestToken(form);
+        assertEquals(Status.BAD_REQUEST.getStatusCode(), response.getStatus());
 
         String entity = response.getEntity(String.class);
         JsonNode node = JsonUtils.readTree(entity);
-        assertEquals(OAuthError.TokenResponse.INVALID_CLIENT,
+        assertEquals(OAuthError.TokenResponse.INVALID_REQUEST,
                 node.at("/error").asText());
-    }
-
-    @Test
-    public void testRequestTokenPasswordGrantPublic ()
-            throws UniformInterfaceException, ClientHandlerException,
-            KustvaktException {
-        MultivaluedMap<String, String> form = new MultivaluedMapImpl();
-        form.add("grant_type", "password");
-        form.add("client_id", "iBr3LsTCxOj7D2o0A5m");
-
-        ClientResponse response = testRequestTokenPublicClient(form);
-        String entity = response.getEntity(String.class);
-
-        JsonNode node = JsonUtils.readTree(entity);
-        assertNotNull(node.at("/access_token").asText());
-        assertNotNull(node.at("/refresh_token").asText());
-        assertEquals(TokenType.BEARER.toString(),
-                node.at("/token_type").asText());
-        assertNotNull(node.at("/expires_in").asText());
+        assertEquals("Missing parameters: client_secret",
+                node.at("/error_description").asText());
     }
 
     @Test
     public void testRequestTokenPasswordGrantMissingClientId ()
-            throws UniformInterfaceException, ClientHandlerException,
-            KustvaktException {
+            throws KustvaktException {
         MultivaluedMap<String, String> form = new MultivaluedMapImpl();
         form.add("grant_type", "password");
+        form.add("username", "dory");
+        form.add("password", "password");
+        form.add("client_secret", "secret");
 
-        ClientResponse response = testRequestTokenPublicClient(form);
+        ClientResponse response = requestToken(form);
         String entity = response.getEntity(String.class);
         assertEquals(Status.BAD_REQUEST.getStatusCode(), response.getStatus());
 
         JsonNode node = JsonUtils.readTree(entity);
         assertEquals(OAuthError.TokenResponse.INVALID_REQUEST,
                 node.at("/error").asText());
-        assertEquals("client_id is missing",
+        assertEquals("Missing parameters: client_id",
                 node.at("/error_description").asText());
     }
+    
+    @Test
+    public void testRequestTokenPasswordGrantPublic ()
+            throws KustvaktException {
+        MultivaluedMap<String, String> form = new MultivaluedMapImpl();
+        form.add("grant_type", "password");
+        form.add("username", "dory");
+        form.add("password", "password");
+        form.add("client_id", "iBr3LsTCxOj7D2o0A5m");
+
+        ClientResponse response = requestToken(form);
+        String entity = response.getEntity(String.class);
+
+        JsonNode node = JsonUtils.readTree(entity);
+        assertNotNull(node.at("/access_token").asText());
+        assertNotNull(node.at("/refresh_token").asText());
+        assertEquals(TokenType.BEARER.toString(),
+                node.at("/token_type").asText());
+        assertNotNull(node.at("/expires_in").asText());
+    }
 
     @Test
     public void testRequestTokenPasswordGrantNonNative ()
-            throws UniformInterfaceException, ClientHandlerException,
-            KustvaktException {
+            throws KustvaktException {
         MultivaluedMap<String, String> form = new MultivaluedMapImpl();
         form.add("grant_type", "password");
-        form.add("client_id", "8bIDtZnH6NvRkW2Fq==");
+        form.add("username", "dory");
+        form.add("password", "password");
+        // confidential nonnative
+        form.add("client_id", "9aHsGW6QflV13ixNpez");
+        form.add("client_secret", "secret");
 
-        ClientResponse response = testRequestTokenPublicClient(form);
+        ClientResponse response = requestToken(form);
         String entity = response.getEntity(String.class);
-        assertEquals(Status.BAD_REQUEST.getStatusCode(), response.getStatus());
+        assertEquals(Status.UNAUTHORIZED.getStatusCode(), response.getStatus());
 
         JsonNode node = JsonUtils.readTree(entity);
         assertEquals(OAuthError.TokenResponse.UNAUTHORIZED_CLIENT,
@@ -153,13 +241,13 @@
 
     @Test
     public void testRequestTokenClientCredentialsGrant ()
-            throws UniformInterfaceException, ClientHandlerException,
-            KustvaktException {
+            throws KustvaktException {
 
         MultivaluedMap<String, String> form = new MultivaluedMapImpl();
         form.add("grant_type", "client_credentials");
-
-        ClientResponse response = testRequestTokenConfidentialClient(form);
+        form.add("client_id", "fCBbQkAyYzI4NzUxMg");
+        form.add("client_secret", "secret");
+        ClientResponse response = requestToken(form);
         String entity = response.getEntity(String.class);
         assertEquals(Status.OK.getStatusCode(), response.getStatus());
 
@@ -173,11 +261,9 @@
     }
 
     @Test
-    public void testRequestTokenMissingGrantType ()
-            throws UniformInterfaceException, ClientHandlerException,
-            KustvaktException {
+    public void testRequestTokenMissingGrantType () throws KustvaktException {
         MultivaluedMap<String, String> form = new MultivaluedMapImpl();
-        ClientResponse response = testRequestTokenConfidentialClient(form);
+        ClientResponse response = requestToken(form);
         assertEquals(Status.BAD_REQUEST.getStatusCode(), response.getStatus());
 
         String entity = response.getEntity(String.class);
@@ -187,9 +273,7 @@
     }
 
     @Test
-    public void testRequestTokenUnsupportedGrant ()
-            throws UniformInterfaceException, ClientHandlerException,
-            KustvaktException {
+    public void testRequestTokenUnsupportedGrant () throws KustvaktException {
 
         MultivaluedMap<String, String> form = new MultivaluedMapImpl();
         form.add("grant_type", "blahblah");
diff --git a/full/src/test/resources/test-config.xml b/full/src/test/resources/test-config.xml
index 0445d65..c0f7a2e 100644
--- a/full/src/test/resources/test-config.xml
+++ b/full/src/test/resources/test-config.xml
@@ -167,10 +167,10 @@
 
 	<!-- URLValidator -->
 	<bean id="urlValidator" class="org.apache.commons.validator.routines.UrlValidator">
-		<constructor-arg value="http,https"/>
+		<constructor-arg value="http,https" />
 	</bean>
 	<bean id="httpsValidator" class="org.apache.commons.validator.routines.UrlValidator">
-		<constructor-arg value="https"/>
+		<constructor-arg value="https" />
 	</bean>
 
 	<bean id="kustvakt_rewrite" class="de.ids_mannheim.korap.rewrite.FullRewriteHandler">
@@ -184,10 +184,18 @@
 	<bean id="kustvaktExceptionHandler" class="de.ids_mannheim.korap.web.KustvaktExceptionHandler">
 		<constructor-arg index="0" name="iface" ref="kustvakt_auditing" />
 	</bean>
+
+	<!-- OAuth -->
 	<bean id="oauth2ResponseHandler" class="de.ids_mannheim.korap.web.OAuth2ResponseHandler">
 		<constructor-arg index="0" name="iface" ref="kustvakt_auditing" />
 	</bean>
 
+	<bean id="mdGenerator" class="org.apache.oltu.oauth2.as.issuer.MD5Generator">
+	</bean>
+	<bean id="oauthIssuer" class="org.apache.oltu.oauth2.as.issuer.OAuthIssuerImpl">
+		<constructor-arg index="0" ref="mdGenerator" />
+	</bean>
+
 	<bean id="kustvakt_userdb" class="de.ids_mannheim.korap.handlers.EntityDao">
 		<constructor-arg ref="kustvakt_db" />
 	</bean>
@@ -200,8 +208,7 @@
 		<constructor-arg ref="kustvakt_db" />
 	</bean>
 
-	<bean name="kustvakt_encryption"
-		class="de.ids_mannheim.korap.encryption.KustvaktEncryption">
+	<bean name="kustvakt_encryption" class="de.ids_mannheim.korap.encryption.KustvaktEncryption">
 		<constructor-arg ref="kustvakt_config" />
 	</bean>
 
@@ -267,8 +274,8 @@
 	<!-- specify type for constructor argument -->
 	<bean id="kustvakt_authenticationmanager"
 		class="de.ids_mannheim.korap.authentication.KustvaktAuthenticationManager">
-		<constructor-arg
-			type="de.ids_mannheim.korap.interfaces.EntityHandlerIface" ref="kustvakt_userdb" />
+		<constructor-arg type="de.ids_mannheim.korap.interfaces.EntityHandlerIface"
+			ref="kustvakt_userdb" />
 		<constructor-arg type="de.ids_mannheim.korap.interfaces.EncryptionIface"
 			ref="kustvakt_encryption" />
 		<constructor-arg ref="kustvakt_config" />
@@ -309,8 +316,8 @@
 
 	<!-- mail -->
 	<bean id="authenticator" class="de.ids_mannheim.korap.service.MailAuthenticator">
-		<constructor-arg index="0" value="${mail.username}"/>
-		<constructor-arg index="1" value="${mail.password}"/>
+		<constructor-arg index="0" value="${mail.username}" />
+		<constructor-arg index="1" value="${mail.password}" />
 	</bean>
 	<bean id="smtpSession" class="javax.mail.Session" factory-method="getInstance">
 		<constructor-arg index="0">
@@ -323,7 +330,7 @@
 				<prop key="mail.smtp.connectiontimeout">${mail.connectiontimeout}</prop>
 			</props>
 		</constructor-arg>
-		<constructor-arg index="1" ref="authenticator"/>
+		<constructor-arg index="1" ref="authenticator" />
 	</bean>
 	<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
 		<property name="session" ref="smtpSession" />
