Posts

Showing posts from March, 2017

Sending email from your Spring Boot app

1. Overview
In this article I'll show you how you can send email from your spring boot app using JavaMailSender interface. It's an abstraction for sending emails from spring boot that provides auto configuration and easy implementation. I'm using a gmail account here to demonstrate the process.
2. Depencency
Add spring-boot starter-maildependency on your pom.xml file.
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
3. Mail Properties
Add your email credentials on your application.properties file.
#spring-boot-starter-mail properties
email.host=smtp.gmail.com
email.port=587
[email protected]
email.password=yourpassword
4. Configuration
Write a configuration class so that you can configure your JavaMailSender bean with your email credentials and properties.
@Configuration
public class MailConfig {
@Value("${email.host}")
private String host;

@Value…

স্প্রিং সিকিউরিটিঃ UserDetailsService দিয়ে ইউজার অথেনটিকেশন

স্প্রিং সিকিউরিটি বেসিক অথেনটিকেশন নিয়ে আমার পূর্বের আর্টিকেলটি দেখুন এখানে

এই আর্টিকেলে আমরা UserDetailsService দিয়ে ডেটাবেইজে ইউজারের টেবিল থেকে আমরা ইউজারকে অথেন্টিকেট করব।

এজন্য ইউজারের Entity কে একটু সাজাতে গুছাতে হবে। User class এ ইমপ্লিমেন্ট করে দিন স্প্রিং সিকিউরিটির UserDetails interface।

User Entity টা হবে এরকমঃ

User.java
@Entity
public class User implements UserDetails {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String name;
@NotNull
@Column(unique = true)
private String email;
private String password;
private String token;
@Embedded
private Address address;
private String phoneNumber;
private boolean enabled = true;
private boolean accountNonExpired = true;
private boolean accountNonLocked;
private boolean credentialsNonExpired = true;
@ElementCollection(fetch = FetchType.EAGER)
private Collection<String> roles;


@Override
public Collection<? extends GrantedAuthority> getAu…

Deploy Spring Boot app on Pivotal Web Service (cloud foundry PaaS)

It's so much easy to deploy your spring boot app on pivotal web service.

You've to follow some steps.

First add two dependecy on your pom.xml file.
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-spring-service-connector</artifactId>
<version>1.0.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-cloudfoundry-connector</artifactId>
<version>1.0.0.RELEASE</version>
</dependency>
Now package your app using this maven command
$ mvn clean package -Dmaven.test.skip=true
Here we passed arguments -Dmaven.test.skip=true  not to test app when packaging.

This command will package your app into a jar file. Now push that file in cloudfoundary web service. But before you proceed you need to install cloud found…

স্প্রিং সিকিউরিটিঃ বেসিক অথেন্টিকেশন

১। ভূমিকা


স্প্রিং সিকিউরিটি জাভা  অ্যাপ্লিকেশনের নিরাপত্তা দেয়ার জন্য একটা ফ্রেমওয়ার্ক। এরকম আরও কয়েকটা ফ্রেমওয়ার্ক আছে যেমন  PicketLink, Apache Shiro, OOAC ইত্যাদি কিন্তু এর মধ্যে স্প্রিং সিকিউরিটিই সবচেয়ে বেশী জনপ্রিয়, এবং একটা ওয়েব অ্যাপের সিকিউরিটি দেয়ার জন্য য কিছু দরকার তার প্রায় সব কিছুই এই ফ্রেমওয়ার্কে পাওয়া যাবে। এবং শেখাটাও খুব সহজ।



এই আর্টিকেলে আমরা স্প্রিং সিকিউরিটি ফ্রেমওয়ার্ক দিয়ে একটা জাভা অ্যাপ্লিকেশনের বেসিক সিকিউরিটি ইমপ্লিমেন্ট করার চেষ্টা করবো। সিকিউরিটি কনফিগারেশন দুই উপায়ে আমরা লিখতে পারি। XML এবং জাভা কনফিগারেশন। এখানে জাভা কনফিগারেশনে বেসিক অথেনটিকেশন দেখানো হবে, যেহেতু Spring 3.5 থেকেই আমরা @Annotation বেইজড কনফিগারেশন লিখতে পারি এবং স্প্রিং বুটে সম্পূর্নই জাভা কনফিগারেশন ইউজ করা হয় কাজেই XML কনফিগারেশন অনেকটা আনঅফিসিয়ালি  ডেপ্রিকেটেড।



একটা বেসিক লগইন মেকানিজম দিয়ে আমাদের বেসিক সিকিউরিটি সিম্যুলেট করে দেখানো সহজ হবে। তার মানে হচ্ছে ওয়েব অ্যাপে এক্সেস করার জন্য ইউজারের একটা ইউজারনেম/ইমেইল এবং পাসওয়ার্ডের প্রয়োজন হবে।


২।  Maven/Gradle ডিপেন্ডেন্সি


স্প্রিং সিকিউরিটির …